如何正确设置辅助视图以支持iPhone上的导航控制器?

时间:2010-03-05 18:41:15

标签: iphone uinavigationcontroller

我有一个iPhone应用程序,显示一个带有按钮的简单视图(视图1)。当用户按下此按钮时,View 2将使用呼叫滑入视图

[self presentModalViewController:self.view2 animated:YES];

我希望View 2支持导航控制器。我找到的所有代码都告诉您如何设置导航控制器应用程序,但我无法弄清楚如何使用IB进行设置。

我所做的是创建一个普通的view2.xib文件。我将文件的所有者类设置为view2。 我向XIB添加了一个导航控制器。我在view2.h中为UINavigationController创建了一个名为view2Nav的IBOutlet。我将view2Nav链接到view2.xib中的NavigationController。

然后我使用view3.xib创建一个view3类。我将view2.xib中的RootViewController设置为类view3,并将其NIB名称设置为view3。

然后我回去运行程序。当我在视图1上按下我的按钮时,应用程序在尝试创建视图2时崩溃。

我知道我必须错过任何一种设置。

1 个答案:

答案 0 :(得分:2)

MySecondViewController *secondVC = [[MySecondViewController alloc] initWithNibName:@"MySecondViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:secondVC];
[self presentModalViewController:navigationController animated:YES];
[secondVC release];
[navigationController release];

忘记IB。在代码中做任何事情:)它更快,你将确切知道它为什么以及如何工作。

我不确定您是否可以将self.view2传递给presentModalViewController。如果self.view2UIViewController的子类,则可以。如果它是一个简单的UIView,你不应该。如果事实你根本不能。