我在UITableViewController上设置导航按钮时出现问题!该控制器位于UINavigationController内。
我关注了视图控制器:
@interface SettingsViewController : UITableViewController<UITextFieldDelegate, UINavigationControllerDelegate> {
}
...........
@end
并在实施文件中:
- (void)viewDidLoad
{
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
我正在以编程方式添加导航按钮项。
编辑:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
//[self.navigationItem setHidesBackButton:editing animated:YES];
if (!editing)
{
self.navigationItem.leftBarButtonItem = nil;
[self save];
}
else
{
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(Cancel:)];
self.navigationItem.leftBarButtonItem = cancelButtonItem;
cancelButtonItem = nil;
}
}
- 上面的编辑功能似乎在设置导航按钮方面工作正常
取消:
- (IBAction)Cancel:(id)sender {
//cancel
self.navigationItem.rightBarButtonItem = self.editButtonItem; --> this is not setting edit button.
self.navigationItem.leftBarButtonItem = nil;
}
- 但点击取消并不是将navigationitem右键按钮'Done'替换为'Edit',即使我在Cancel方法中执行此操作,如上所示。
这段代码有什么问题?
当我调试时,我在调试区域中看不到以下内容:
po self.navigationItem
任何想法为什么?
提前致谢,
拉马
答案 0 :(得分:1)
简单,将editing
设为NO
:
- (IBAction)Cancel:(id)sender {
//cancel
self.editing = NO; //--> This is the trick!!!!!!
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem = nil;
}