在UINavigationBar中隐藏或禁用UIBarButtonItem

3
我正在使用模态转场来呈现一个UIViewController。这个UIViewController继承了一个UINavigationBar,我在导航栏的左侧设置了一个UIBarButtonItem: HELP ME!!! 我的问题是,当调用被呈现的UIViewController的viewWillAppear方法时,我想隐藏UIBarButtonItem,但是它总是显示出来。 我已经为UIViewController声明了一个UIBarButtonItem,名为myCancelButton,并在Interface Builder中引用它。
到目前为止,我尝试过以下方法(都没有起作用):
- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.navigationItem.leftBarButtonItem = nil;
    self.navigationItem.backBarButtonItem = nil;
    self.myCancelButton = nil;

    NSMutableArray *barButtonItems = [self.navigationItem.leftBarButtonItems mutableCopy];
    [barButtonItems removeObject:self.myCancelButton];
    self.navigationItem.leftBarButtonItems = barButtonItems;

    [self.navigationItem.leftBarButtonItems delete:self.myCancelButton];

    self.navigationController.navigationItem.leftBarButtonItem = nil;
    barButtonItems = [self.navigationController.navigationItem.leftBarButtonItems mutableCopy];
    [barButtonItems removeObject:self.myCancelButton];
    self.navigationController.navigationItem.leftBarButtonItems = barButtonItems;

    [self.navigationController.navigationItem.leftBarButtonItems delete:self.myCancelButton];

    [self.myCancelButton setWidth:0.01];

    self.navigationItem.hidesBackButton = TRUE;

    //Even setting enabled to false doesn't work:
    [self.myCancelButton setEnabled:FALSE];
}
2个回答

1
这应该可以工作。
[self.navigationItem setHidesBackButton:YES animated:YES];

0

尝试使用这个

self.navigationController.navigationItem.leftBarButtonItem = nil;
[self.navigationController.navigationItem setHidesBackButton:YES];

我已经在原始帖子中尝试过以下代码:self.navigationController.navigationItem.leftBarButtonItem = nil; self.navigationItem.hidesBackButton = TRUE; - w3bshark
请稍等,我有点忙。如果我有空的话,我会读这个的。 - Dharmbir Singh
你有没有机会找到解决方案? - w3bshark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接