2011-09-16 20 views
1

只是試圖圍繞不同項目類型的構建方式,我必須缺少一些東西。從一個基於Window的項目開始建立一個基於導航的項目

我想從基於窗口的應用程序開始,只需添加一個導航控制器,以便了解不同的組件如何與窗口和應用程序委託一起工作。

這裏就是我所做的:

  • 創建窗口基於項目
  • 在我的應用程序delegate.h我加
    @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

在我的應用程序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文件I加入下面的 窗口
  • 創建一個新的UIViewController子類(FirstView.h /米)
  • 指向的NavigationController的根視圖控制器的firstView
  • 一個NavigationController

構建清潔,當我啓動時,我得到一個全白屏幕。

我錯過了什麼?

回答

1

想通了 - 我不得不創建一個新的引用出口和導航控制器連接到App代表中的.xib。

1

加這個[self.window addSubview:self.navigationController.view];您需要將導航控制器視圖添加到窗口。還要確保導航控制器的插座已連接。您還需要爲導航控制器添加根視圖控制器

+0

沒有變化。如果是這種情況 - 爲什麼當您創建一個新的基於導航的項目並查看AppDelegate.m時不會顯示此行? – barfoon

+0

您需要爲導航控制器添加根視圖控制器 – visakh7

+0

我做了 - 在MainWindow.xib中,選擇了導航控制器內的根視圖控制器並選擇了我的FirstView作爲類... – barfoon

1

其實barfoon..your導航控制器不包含任何UIViewController。首先創建新的UIViewController並將其添加到UINavigationControllerUINavigationController就像堆棧,它處理每個添加的UIViewController,即來回穿越。 防爆..

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

感謝編輯7KV7 :) –

+0

不想''分配'UINavigationController' - 我已經在頭文件中聲明瞭一個,在實現中合成並分配它,並且它存在於.xib中 – barfoon

+0

這是否仍然是一個空白的白色屏幕 – barfoon

相關問題