8

在我找不到任何关于如何为 xibs 执行此操作的教程之前,仅使用 storyords 子类化导航控制器。

如何将导航控制器添加到某个 xib 以便我可以对其进行子类化?然后我可以覆盖我的视图的旋转。我坚持的部分是视图控制器如何知道导航控制器?在情节提要中,我会手动将其连接到我的视图控制器。我只是不能用 xibs 解决它?

我在我的视图 xib 旁边添加了一个导航控制器……现在我需要从这里得到一些建议。

我还从我原来的 iPhone xibs 创建了 iPad 视图。当我从 IB 拖动导航控制器时,它仍然是 iPhone 屏幕尺寸吗?

4

2 回答 2

8

您不需要像UINavigationController使用情节提要一样在 xib 文件中设置 a,因为 xib 仅代表一个屏幕。正常的做法是 alloc/init aUINavigationController和 a UIViewController,并在显示之前将视图控制器设置为导航控制器的根。如果您希望整个应用程序从一开始就包裹在导航控制器中,则可以在 App Delegate 中完成此操作。

在非故事板应用程序的应用程序委托中,您需要这样的东西

self.navigation = [[UINavigationController alloc] initWithRootViewController:[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]];

[self.window makeKeyAndVisible];

self.window.rootViewController = self.navigation;

属于 App Delegateself.navigation的属性或 iVar在哪里。UINavigationController如果您想在 xib 中正确设置视图控制器,请在 xib 中选择根视图并打开属性检查器(RHS,看起来像一个小盾牌的那个)并在“顶部栏”中选择“导航栏”下拉式菜单。这将在 xib 中显示导航控制器顶部栏,以便您可以相应地定位其他视图。

编辑

这并不完全正确,您可以在 xib 文件中创建导航控制器,但我一直认为它比它的价值更麻烦,因为它的视觉元素很少,而且可以很容易地在代码中设置它们。

本教程中的更多信息在这里

http://www.iosdevnotes.com/2011/03/uinavigationcontroller-tutorial/

于 2012-12-18T11:48:23.020 回答
0

如果你想覆盖导航控制器的旋转,只需创建一个覆盖旋转方法的 UINavigationController 子类,然后使用 P-double 的代码,而不是调用你[UINavigationController alloc]应该调用类似[MyNavigationController alloc]面向对象编程的奇迹。

于 2012-12-18T11:54:53.023 回答