这是一个非常简单的问题,但我找不到怎么做。
我发现的第一件事是我必须添加一个导航控制器。虽然我不需要显示导航控制器,但我试过了。 我找到了这些教程: http://www.ralfebert.de/tutorials/iosdev/navigationcontroller/
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),而无需在应用程序中添加导航栏。
答案 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的样子:
注意:我已经改变了第二个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;
}