我有一个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时崩溃。
我知道我必须错过任何一种设置。
答案 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.view2
是UIViewController
的子类,则可以。如果它是一个简单的UIView
,你不应该。如果事实你根本不能。