4

这是一个非常简单的问题,但我不知道该怎么做。

我发现的第一件事是我必须添加一个导航控制器。虽然我不需要展示导航控制器,但我试过了。我找到了这些教程: 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 中以编程方式创建的窗口对象

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

我正在为 5.1 使用 Xcode 4.4.1 构建。

然后我发现了 hacky 方法来替换这里描述的视图:http: //fuelyourcoding.com/ios-basics-how-to-load-a-uiview-without-a-navigation-controller/

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

在 Apple 的开发指南中,有一些关于故事板的内容。那是我需要的吗?

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

4

3 回答 3

4

最好的方法是使用导航控制器。

在 AppDelegate 应用程序WillFinishLaunchingWithOptions 把这个...

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];

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

于 2012-11-18T13:28:56.500 回答
1

如果您不想使用 NavigationController,则可以显示模式视图。在这个 SO 问题中,您可以找到如何做到这一点:Present and dismiss modal view controller

是否使用 NavigationController 呈现视图取决于该视图的目的,并且它与您的屏幕流程有关。如果您必须“向下钻取”到一系列 UITableView 或只是在到达特定屏幕之前浏览不同的屏幕,您应该使用 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 中,在已创建的旁边。

现在你应该有两个不同的 ViewController。只需将 UIButton 从右下角(您需要滚动列表以查看“圆形矩形按钮”选项)拖动到第一个 ViewController(有一个从左侧指向它的箭头)。

最后,您必须按住 Control + 单击该 UIButton 并将该按钮与另一个 ViewController 链接。完成此操作后,它将显示“Action Segue”对话框。只需选择模态,瞧!

这就是您的 StoryBoard 的样子:

模态视图控制器

注意:我已经更改了第二个 ViewController 的颜色,以使其更明显地切换。

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

于 2012-11-18T14:34:08.240 回答
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;
}
于 2012-11-18T13:30:03.903 回答