在App程式設計入門的13-17頁,介紹了如何利用instantiateViewControllerWithIdentifier:建立controller。
MasterDetailTestDetailViewController *viewController =
[self.storyboard instantiateViewControllerWithIdentifier:@"Poem"];
其中的關鍵在於在storyboard裡替View Controller取個好名字,也就是它的Identifier,如此到時候才能在程式裡指定建立的View Controller為何。
原本設定Id的方式如下。先切換到Detail View Controller的Attributes Inspector分頁,然後將Identifier欄位設為Poem。
不過在最新的Xcode 4.5裡,如同梁朝偉的一天一點愛戀,滄海已成桑田,設定的地方已經改變。現在我們要切換至Identity Inspector頁面(第三個Icon),設定Storyboard ID ( 如下圖所示)
執行App:
只要設定了Storyboard ID,原來的程式碼將順利地執行,我們又可以再一次提升文藝氣息,欣賞大詩人李商隱的錦瑟了。
請問我改了!!
回覆刪除怎麼還是錯!!
跟我說Application tried to push a nil View Controller on target !!
難不成還要alloc!!
你可以將完整的程式專案寄到我的信箱嗎? 我可以幫你看看
刪除我的信箱是apppeterpan@gmail.com
請問,如果使用這個方法(instantiateViewControllerWithIdentifier)將xib(假設名稱為originalXib)連接上storyboard,是不是有比較奇特的方法可以回到上一層(originalXib)?
回覆刪除我嘗試使用dismissviewcontrolleranimated但結果為一片黑><
感謝
要怎麼回到上一層,是由你如何進入下一層來決定的。如果是用pushViewController:animated:,回到上一層則必須呼叫popViewControllerAnimated:。如果是用presentModalViewController:animated:,回到上一層則必須呼叫dismissModalViewControllerAnimated:。
刪除