Agregar BarButtonItem a NavigationBar

Agregué una barra de navigation a través de IB y traté de agregar un elemento de button de barra de forma programática … pero no funciona.

- (void)viewDidLoad { UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)]; [self.navigationItem setLeftBarButtonItem:self.addButton]; [super viewDidLoad]; } 

Intente hacer esto:

 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonTapped:)]; 

En su caso intente esto:

 UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)]; [self.navigationItem setLeftBarButtonItem:addButton]; 

Supongo que esto podría funcionar.

Lo que está haciendo es correcto, pero hasta ahora, solo ha agregado el addButton a un elemento UINavigationItem como leftBarButtonItem. Para agregarlo a una barra de navigation, debe presionar el elemento navigationItem, similar a cómo agrega un nuevo UIViewController a un UINavigationController. Suponiendo que nombre su UINavigationBar navBar:

 UINavigationItem *navigationItem = [[UINavigationItem alloc] init]; self.addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)]; [navigationItem setLeftBarButtonItem:self.addButton]; [self.navBar pushNavigationItem:navigationItem animated:NO]; [navigationItem release]; 

¡Espero que ayude!

 UIBarButtonItem *addButton = [[UIBarButtonItem alloc] init]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)]; self.navigationItem.leftBarButtonItem = addButton; self.navigationItem.leftBarButtonItem.enabled = YES; 

Para algunas vistas, the leftBarButtonItem no funciona y debe utilizar el backBarButtonItem. Prueba esto:

 - (void)viewDidLoad { [self.navigationItem setBackBarButtonItem:[[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)] autorelease]; // Or, if that doesnt work for some reason use: // [self.navigationItem setLeftBarButtonItem:[[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)] autorelease]; [super viewDidLoad]; } 

Además, su creación de una variable dentro del scope de viewDidLoad llamado viewDidLoad , pero luego está intentando establecer la propiedad self.addButton como leftBarButtonItem .

O quítate el self. desde el self.addButton en:

 [self.navigationItem setLeftBarButtonItem:self.addButton]; 

o inicialice la propiedad en lugar de crear un nuevo elemento con el mismo nombre:

 self.addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)]; // instead of: // UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordenetworking target:self action:@selector(EditTable:)];