故事板:改变segues后推断导航栏

时间:2012-09-19 15:16:24

标签: iphone objective-c ios5 storyboard segue

我正在开发一个基于导航的应用,只有很少的视图。在故事板中,我有一个Navigation Controller指向我的主ViewController(我的应用程序的“中心”视图),它指向其他带有segue的视图。

起初我希望这个segues为push,但它无法正常工作(按钮几乎没有响应),我已切换到modalas advised here)。现在segue工作正常,但每当我使用modal segue时,视图中的导航栏指向消失(我尝试过其他配置 - 导航栏显示在Storyboard上但不适用于模拟器)。

我在哪里弄错了?

2 个答案:

答案 0 :(得分:2)

通过模式演示,您的视图控制器不再是UINavigation堆栈的一部分。您可以拖入一个新的UINavigationController,将其显示为模态视图,并让您的视图控制器类成为导航控制器的根视图控制器。

答案 1 :(得分:1)

正如JoePasq所建议的那样,“让您的视图控制器类成为导航控制器的根视图控制器”。选择要设置为Root屏幕的视图控制器,然后转到Editor / EmbedIn选项并选择导航控制器。您将获得嵌入了根视图控制器的导航控制器。您可以在程序中以编程方式更改屏幕,而不是设置segue。在按钮单击事件的方法中,写下类似的代码,如下所示;

- (IBAction)okPressed:(id)sender {
UIStoryBoard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; //MainStoryboard is the name of your storyboard
SecondViewController *secondView = [storyboard instantiateViewControllerWithIdentifier:@"sView"];
//sView is the identifier name set by the user, (present inside Attribute Inspector - View Controller)
[self.navigationController pushViewController:secondView animated:YES]; 

让我知道这是否有效,或者还有另一种方法可以做到。

相关问题