如何在没有 xib 的情况下使用 UINavigationController?
Posted
技术标签:
【中文标题】如何在没有 xib 的情况下使用 UINavigationController?【英文标题】:How do I use the UINavigationController without a xib? 【发布时间】:2011-05-11 06:21:36 【问题描述】:我对 Interface Builder 有一种非理性的厌恶。
这是我目前的情况,我得到的只是黑屏。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
// Add the navigation controller's view to the window and display.
PrayViewController* prayViewController = [[PrayViewController alloc] initWithTabBar];
[_window addSubview: [[UINavigationController alloc] initWithRootViewController:prayViewController]];
[prayViewController release];
[self.window makeKeyAndVisible];
return YES;
【问题讨论】:
【参考方案1】:您应该向窗口添加一个视图,如下所示:
UIViewController *rootController = [[MyRootViewController alloc] init];
navigationController = [[UINavigationController alloc]
initWithRootViewController:rootController];
[rootController release];
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// *** IMPORTANT DIFFERENCE:
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
您正在将导航视图控制器的整个实例添加到窗口中。
UIWindow 是 UIView 的后代,所以它只是继承了addSubview method。它需要另一个 UIView 作为参数。
【讨论】:
【参考方案2】:我会检查您的窗口和它的视图是否通过 NSLog 返回了您期望的内容。如果没有看到创建窗口及其视图的代码,很难判断,但我怀疑其中一个没有正确创建。
【讨论】:
以上是关于如何在没有 xib 的情况下使用 UINavigationController?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有xib文件的情况下使用uiviewcontroller
如何在没有 XIB 文件的情况下以编程方式更新 Xcode 中的 UILabel?
如何在没有 .xib 或故事板文件的情况下向应用程序添加菜单?