我正在使用模态转场来呈现一个UIViewController。这个UIViewController继承了一个UINavigationBar,我在导航栏的左侧设置了一个UIBarButtonItem:
我的问题是,当调用被呈现的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];
}
self.navigationController.navigationItem.leftBarButtonItem = nil; self.navigationItem.hidesBackButton = TRUE;
- w3bshark