后退按钮没有出现在iPhone上

时间:2012-11-06 11:54:06

标签: iphone xcode

我创建了一个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)现在可以正常使用,感谢所有的帮助。

3 个答案:

答案 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进行了任何修改?