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

Posted

技术标签:

【中文标题】将新视图推送到导航堆栈时,UIToolbar 按钮消失【英文标题】:UIToolbar buttons disappear when pushing new view onto navigation stack 【发布时间】:2011-01-29 13:26:43 【问题描述】:

我有一个基于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];

【问题讨论】:

【参考方案1】:

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

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

self.navigationController.toolbarHidden = YES;

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于将新视图推送到导航堆栈时,UIToolbar 按钮消失的主要内容,如果未能解决你的问题,请参考以下文章

Iphone UIView 父方法调用

将 UITableViewController 推送到导航堆栈时看不到导航栏

将 UIViewController 推送到导航堆栈时如何显示选项卡栏

为啥在我的视图被推送到导航堆栈之前我的 UIAlertView 没有在屏幕上消失?

向未推送到堆栈的 NavigationController 添加视图

react-native-navigation ios - 将 UIViewController 推送到导航堆栈