将新视图推送到导航堆栈时,UIToolbar按钮消失

时间:2011-01-29 13:26:44

标签: iphone cocoa-touch uinavigationcontroller uitoolbar

我有一个基于UINavigationController的iPhone应用程序,底部有UIToolbar,其中包含我通过Interface Builder创建的各种按钮。当我使用[navigationController pushViewController:animated:]我的新视图按预期滑动到位时,然后所有按钮都从工具栏中消失 - 工具栏本身保持可见,它只是完全为空。

如何让按钮保持不变?

这是我回复用户按下其中一个工具栏按钮然后显示新视图的位:

- (IBAction)clickSettings:(id)sender {
    NSLog(@"Clicked on 'Settings' button");

    SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"Settings" bundle:nil];
    [navigationController pushViewController:settingsViewController animated:YES];
}

2 个答案:

答案 0 :(得分:4)

工具栏按钮是给定视图的属性;当您将新视图推送到导航堆栈时,新视图的工具栏按钮将滑入到位。

工具栏本身似乎“属于”导航控制器;工具栏的可见性由UINavigationController toolbarHidden属性控制,即

self.navigationController.toolbarHidden = YES;

答案 1 :(得分:2)

要将工具栏从一个视图实际保留到下一个视图,您可以将toolbarItems属性从一个UIView复制到下一个。