我通过IB添加了一个NavigationBar,我尝试以编程方式添加BarButtonItem .....但它不起作用。
- (void)viewDidLoad {
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)];
[self.navigationItem setLeftBarButtonItem:self.addButton];
[super viewDidLoad];
}
答案 0 :(得分:4)
尝试这样做:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonTapped:)];
答案 1 :(得分:1)
在你的情况下试试这个:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)];
[self.navigationItem setLeftBarButtonItem:addButton];
我想这可能有用。
答案 2 :(得分:1)
您正在做的是对的,但到目前为止,您只是将addButton作为leftBarButtonItem添加到UINavigationItem中。要将它添加到navigationBar,您需要将navigationItem推送到它,类似于将新的UIViewController添加到UINavigationController的方式。假设您为UINavigationBar navBar命名:
UINavigationItem *navigationItem = [[UINavigationItem alloc] init];
self.addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)];
[navigationItem setLeftBarButtonItem:self.addButton];
[self.navBar pushNavigationItem:navigationItem animated:NO];
[navigationItem release];
希望有所帮助!
答案 3 :(得分:0)
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] init];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)];
self.navigationItem.leftBarButtonItem = addButton;
self.navigationItem.leftBarButtonItem.enabled = YES;
答案 4 :(得分:0)
对于某些视图,leftBarButtonItem不起作用,您需要使用backBarButtonItem。试试这个:
- (void)viewDidLoad {
[self.navigationItem setBackBarButtonItem:[[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)] autorelease];
// Or, if that doesnt work for some reason use:
// [self.navigationItem setLeftBarButtonItem:[[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)] autorelease];
[super viewDidLoad];
}
此外,您在viewDidLoad
范围内创建了一个名为addButton
的变量,但之后您尝试将属性self.addButton
设置为leftBarButtonItem
。
从self.
中删除self.addButton
:
[self.navigationItem setLeftBarButtonItem:self.addButton];
或初始化属性,而不是创建具有相同名称的新项目:
self.addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)];
// instead of:
// UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"style:UIBarButtonItemStyleBordered target:self action:@selector(EditTable:)];