2012-08-23 21 views
3

我正在使用xcode 4.3與故事板。如何從基於Storyboard的應用程序傳遞參數給UIViewController?

這是我如何打電話給我secong的UIViewController,稱爲BookMenuController

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; 
BookMenuController* bookControll = [sb instantiateViewControllerWithIdentifier:@"contBook"]; 

bookControll.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
[self presentModalViewController:bookControll animated:YES]; 

我如何可以通過在這樣的情況的參數?我想傳遞一個整數,但將來我想傳遞一個NSMutableArray。

有什麼想法?

+0

也許我誤解了,而且這個語法對我來說是新的,但它會如此簡單: 'bookControll.someproperty = somevalue' – FilmJ

回答

1

你會在有或沒有故事板的情況下做同樣的事情:在你的視圖控制器類(BookMenuController)上定義和聲明一個方法(或屬性),並調用該方法(或設置屬性)視圖控制器。

在一個(或多或少)無關的筆記中,當您使用此模式實例化並轉換到視圖控制器時,您不會真正從使用故事板獲得任何內容。部分故事板旨在幫助您消除某些樣板代碼。如果在用戶點擊某個控件時調用了剪切的引用,則根本不需要任何代碼 - 只需將IB中的一個segue拖動到目標視圖控制器中即可。 (您也可以在IB中指定Segue類型和轉換樣式。)如果您需要控制Segue發生更精確的時間,請使用performSegueWithIdentifier:sender:,並且仍然可以將代碼中的segue設置從代碼卸載到IB。無論哪種方式,您都可以在prepareForSegue:sender:中調用目標視圖控制器上的方法/設置屬性。

相關問題