如何将按钮添加到导航栏

时间:2014-05-28 12:19:22

标签: ios uinavigationcontroller

在第一个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;

}

3 个答案:

答案 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:)];