我创建了一个if语句,用于在表格编辑时隐藏后退按钮。
但是当离开编辑模式时,我无法重新出现后退按钮。
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
NSLog(@"Edit");
bool e = [tableView isEditing];
e=!e;
[tableView setEditing:e animated:YES];
[super setEditing:e animated:YES];
if (editing)
{
[self.navigationItem setHidesBackButton:YES animated:NO];
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pushViewController:animated:)];
self.navigationItem.leftBarButtonItem = add;
}
else if (editing == false)
{
self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem;
//[self.navigationItem setHidesBackButton:NO animated:NO];
}
}
我在else语句中添加了一个NSLog,看起来根本没有调用它。
编辑:我解决了这个问题,如果(编辑== true),if if(e == true)现在可以正常使用,感谢所有的帮助。答案 0 :(得分:0)
您需要设置编辑== false,或删除else if并将其替换为else。 目前您正在测试两次以进行编辑== true
if (editing){
[self.navigationItem setHidesBackButton:YES animated:NO];
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pushViewController:animated:)];
self.navigationItem.leftBarButtonItem = add;
}else{
[self.navigationItem setHidesBackButton:NO animated:NO];
}
答案 1 :(得分:0)
您可以将左侧按钮重置为默认后退按钮,如下所示。
self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem;
编辑:你能这样试试吗?
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
NSLog(@"Edit");
bool e = [tableView isEditing];
e=!e;
[tableView setEditing:e animated:YES];
[super setEditing:e animated:YES];
if (editing)
{
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pushViewController:animated:)];
self.navigationItem.leftBarButtonItem = add;
}
else
{
self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem;
}
}
试试这个。很高兴,无论如何这对你有帮助。 :)
答案 2 :(得分:0)
编辑: 我刚刚在项目中尝试了以下代码,它按预期工作,隐藏并重新出现backButton:
- (IBAction)testButton:(id)sender {
hide = !hide;
[self.navigationItem setHidesBackButton:hide animated:NO];
}
隐藏以NO开头。每次按下testButton,背面都会出现或消失。
在隐藏backButton时,您是否对navigationController或navigationItem进行了任何修改?