将新视图推送到导航堆栈时,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 按钮消失的主要内容,如果未能解决你的问题,请参考以下文章
将 UITableViewController 推送到导航堆栈时看不到导航栏
将 UIViewController 推送到导航堆栈时如何显示选项卡栏
为啥在我的视图被推送到导航堆栈之前我的 UIAlertView 没有在屏幕上消失?