从基于Window的项目开始构建基于导航的项目

时间:2011-09-16 06:20:50

标签: iphone ios xcode4 uinavigationcontroller

试图围绕如何构建不同的项目类型,我必须遗漏一些东西。

我正在尝试从基于窗口的应用程序开始,只需添加一个导航控制器,这样我就能理解不同的组件如何与Window和App委托一起工作。

这就是我的所作所为:

  • 创建了一个基于窗口的项目
  • 在我的app delegate.h中,我添加了
    @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

在我的app delegate.m中,我添加了:

@synthesize navigationController;

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}
  • 在MainWindow.xib文件中,我在下面添加了一个NavigationController 窗口
  • 创建了一个新的UIViewController子类(FirstView.h / m)
  • 将NavigationController的根视图控制器指向FirstView

构建干净,当我启动时,我得到一个全白屏幕。

我错过了什么?

3 个答案:

答案 0 :(得分:1)

添加此[self.window addSubview:self.navigationController.view];您需要将导航控制器视图添加到窗口中。还要确保已连接导航控制器的插座。您还需要为导航控制器添加根视图控制器

答案 1 :(得分:1)

实际上是barfoon ..你的导航控制器不包含任何UIViewController。首先创建新的UIViewController,然后将其添加到UINavigationControllerUINavigationController就像堆栈一样,它处理每个添加的UIViewController,即来回移动。 实施例..

ToDoController *toDoObj = [[ToDoController alloc] initWithNibName:@"ToDoController" bundle:[NSBundle mainBundle]];
UINavigationController *toDoNav = [[UINavigationController alloc] initWithRootViewController:toDoObj];
[self.window addSubview:toDoNav.view];

答案 2 :(得分:1)

想出来 - 我必须创建一个新的Referencing插座,并将导航控制器连接到.xib中的App Delegate。