我也想这样做,当用户按下按钮时显示一个屏幕(具有嵌入式导航控制器)。
在我第一次尝试时,我将第一个屏幕中的按钮连接到导航控制器,应用程序因“不支持推送导航控制器”错误而崩溃。
这是我找到的解决方案:
从第一个屏幕中的按钮选择 segue 到导航控制器。如果它有一个标识符,复制它的名字。然后删除那个segue。
然后通过按住 CTRL 键单击第一个视图控制器中的按钮并拖动到您想要呈现的视图控制器(而不是指向它的导航控制器)来创建一个新的转场,然后在小弹出窗口中选择推送。
然后单击 segue 中间的图标并粘贴您在第一步中复制的名称作为它的标识符。
IB 会给你一个警告“场景由于缺少入口点而无法访问,并且没有通过 -instantiateViewControllerWithIdentifier: 进行运行时访问的标识符。” 不用担心,它可以完美运行。
如果要自定义显示为返回按钮的字符串,可以在按下按钮后显示的视图控制器的 viewDidLoad 方法中添加这一行,即子视图控制器。
(将“设置”替换为您需要的名称)
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.topItem.title = @"Settings";
...
}