我正在开发一个基于导航的应用,只有很少的视图。在故事板中,我有一个Navigation Controller
指向我的主ViewController(我的应用程序的“中心”视图),它指向其他带有segue的视图。
起初我希望这个segues为push
,但它无法正常工作(按钮几乎没有响应),我已切换到modal
(as advised here)。现在segue工作正常,但每当我使用modal
segue时,视图中的导航栏指向消失(我尝试过其他配置 - 导航栏显示在Storyboard上但不适用于模拟器)。
我在哪里弄错了?
答案 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];
让我知道这是否有效,或者还有另一种方法可以做到。