我在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;
}--但单击cancel并不会将导航项目右侧栏按钮'Done‘替换为'Edit’,即使我是在上面所示的Cancel方法中执行此操作。
这段代码有什么问题?
当我调试时,我在调试区域看不到以下内容:
po self.navigationItem
知道为什么吗?
提前谢谢你,
拉玛
发布于 2012-04-02 06:38:46
简单,将editing设置为NO
- (IBAction)Cancel:(id)sender {
//cancel
self.editing = NO; //--> This is the trick!!!!!!
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem = nil;
}https://stackoverflow.com/questions/9962674
复制相似问题