在第一个nib viewController上向导航栏添加一个按钮,并希望仅在主屏幕上查看此按钮,而不是在任何其他屏幕上 我已经解决了 我做了按钮并添加到导航栏的子视图 在每个按钮动作我已经把这个
- (IBAction)forth:(id)sender {
forthView *forthview = [[forthView alloc]init];
[self.navigationController pushViewController:forthview animated:YES];
btn.hidden = YES;
}
这个按钮隐藏后但是当我回到主屏幕时没有出现 我的viewdidload代码在这里
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title = @"My First View";
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
btn = [[UIButton alloc] init];
btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(10, 10, 65, 30);
[btn setTitle:@"Show" forState:UIControlStateNormal];
[self.navigationController.navigationBar addSubview:btn];
btn.hidden = false;
}
答案 0 :(得分:0)
隐藏按钮后,您需要再次取消隐藏按钮。这是取消隐藏按钮的简单代码:
btn.hidden = No
答案 1 :(得分:0)
viewDidLoad
仅在您第一次加载视图时调用。如果要测试何时调用它,请添加NSLog()
语句。每次调用屏幕上显示的视图viewWillAppear
时都会被调用
所以你需要在viewWillAppear
答案 2 :(得分:0)
您真正希望做的是向主视图控制器的UIBarButtonItem
属性添加navigationItem.leftBarButtonItem
。这样,按钮将具有正确的外观,并在显示视图控制器时显示和隐藏。
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Show"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(onShowButtonPressed:)];