如何在IOS中启动新屏幕?

时间:2012-11-18 13:18:12

标签: ios

这是一个非常简单的问题,但我找不到怎么做。

我发现的第一件事是我必须添加一个导航控制器。虽然我不需要显示导航控制器,但我试过了。 我找到了这些教程: http://www.ralfebert.de/tutorials/iosdev/navigationcontroller/

http://www.techotopia.com/index.php/Creating_a_Navigation_based_iOS_4_iPhone_Application_using_TableViews

http://iosmadesimple.blogspot.de/2012/09/navigation-based-project-doing-it-using.html

和其他人说,我必须将导航控制器连接到窗口对象。但是在.xib中没有窗口对象。似乎有一些更新,我发现在AppDelegate.m

中以编程方式创建了窗口对象

这是否意味着我必须以编程方式连接它们,如果是,如何?

我正在使用Xcode 4.4.1构建5.1。

然后我找到了hacky方法,以替换此处描述的视图:http://fuelyourcoding.com/ios-basics-how-to-load-a-uiview-without-a-navigation-controller/

但我想知道做标准的方法是什么。

在Apple的开发指南中讲述了故事板。这就是我需要的吗?

如果可能的话,我需要知道如何启动一个单独的新屏幕(当然还有自己的控制器和.xib),而无需在应用程序中添加导航栏。

3 个答案:

答案 0 :(得分:4)

执行此操作的最佳方法是使用导航控制器。

在AppDelegate applicationWillFinishLaunchingWithOptions中放这个......

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:<the view controller you want to use first>];

self.window.rootViewController = self.navController;
[self.window makeKeyAndVisible];

这将使用NavigationController启动您的应用程序,您看到的第一件事就是您的初始视图控制器。

隐藏栏......

在初始视图控制器的viewWillAppear部分......

[self.navigationController setNavigationBarHidden:YES animated:YES];

这将隐藏该控制器的导航栏。

要推送到新的视图控制器......

MyNewViewController *newVc = [[MyNewViewController... (set it up).

[self.navigationController pushViewController:newVc animated:YES];

这是从初始视图控制器完成的。

然后回弹。在新VC中就这样做......

[self.navigationController popViewControllerAnimated:YES];

你永远不会真正“拥有”导航控制器,你永远不会真正看到它。它只是在你的应用程序后面管理过渡和东西。

答案 1 :(得分:1)

如果您不想使用NavigationController,则可以显示模态视图。在这个SO问题中,您可以找到如何执行此操作:Present and dismiss modal view controller

使用NavigationController呈现视图取决于该视图的用途,它与您的屏幕流程有关。如果你必须“深入钻取”到一系列UITableViews中,或者只是在到达特定的屏幕之前浏览不同的屏幕,你应该使用UINavigationController来处理它。看看http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

我个人更喜欢将StoryBoards用于具有大量观看次数的应用,因为它可以帮助我清楚地了解其层次结构以及每种观点之间的关系。

最后,这只是品味问题。如果您想了解有关StoryBoards的更多信息,我建议您发帖子:http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

如果您想知道如何使用StoryBoards创建模态视图,最简单的方法是创建一个新项目,选择“单一视图应用程序”选项并选中“使用故事板”选项。下一个屏幕。完成后,您必须在Xcode中的项目文件夹中选择“MainStoryboard.storyboard”文件。然后从右下角拖动一个“视图控制器”(第一个带有正方形的橙色圆圈)并将其拖放到StoryBoard中,旁边是已经创建的那个。

现在你应该有两个不同的ViewControllers。只需从右下角拖动UIButton(您需要滚动列表以查看“Round Rect Button”选项)到第一个ViewController(从左侧指向箭头的那个)。

最后,您必须按住Control +单击该UIButton并将该按钮与其他ViewController链接。执行此操作后,将显示“Action Segue”对话框。只需选择Modal并瞧!

这就是你的StoryBoard的样子:

modal view controller

注意:我已经改变了第二个ViewController的颜色,使其更加明显。

我建议您首先阅读raywenderlich的教程,然后按照以下步骤进行模态视图。

答案 2 :(得分:0)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Override point for customization after application launch.
    YourViewController *viewController = [[YourViewController alloc] init];
    navController = [[UINavigationController alloc] initWithRootViewController:viewController];
    // Add the view controller's view to the window and display.
    [window addSubview:navController.view];
    [window makeKeyAndVisible];
    return YES;
}