我有一個按鈕的表視圖單元格,當按下時,需要調用不同的視圖控制器的方法。我跟着這個tutorial,它顯示了一種方式來看故事板中的另一個視圖控制器,但它涉及硬編碼視圖控制器的位置。任何時候我會改變我的視圖控制器的順序,我需要更新我的代碼,我知道我會搞砸的。從另一個視圖控制器的調用方法iOS StoryBoard
這裏是他們的方法:
UITabBarController *tabBarController = (UITabBarController *)
self.window.rootViewController;
UINavigationController *navigationController =
[[tabBarController viewControllers] objectAtIndex:0];
PlayersViewController *playersViewController =
[[navigationController viewControllers] objectAtIndex:0];
playersViewController.players = players;
哎呀,那是什麼?我們希望將播放器陣列分配給PlayersViewController的 播放器屬性,以便它可以將此數組用於其數據源 。但是應用程序代理還不知道 PlayersViewController,所以它將不得不挖掘 故事板才能找到它。這是我發現煩人的故事板 的限制之一。使用Interface Builder,您總是在您的MainWindow.xib中擁有對應用程序委託的 引用,並且您可以從您的頂級視圖控制器到 應用程序委託的連接點建立連接。目前故事板不可能。您的 無法從您的頂級視圖 控制器中引用應用程序代理。這是不幸的,但我們總是可以通過編程獲得這些參考文獻。
有人知道更清潔的方法嗎?
我試圖在我的表格視圖單元格中創建一個IBOutlet到另一個視圖控制器,但由於某種原因我無法按住Ctrl鍵並拖動到另一個視圖控制器。
我也試着設置我的按鈕的IBAction爲我在其他視圖控制器,但我需要知道被點擊哪一行,唯一的信息,我可以從-(IBAction) addButtonClicked:(id)seder
得到的是sender
信息,這僅僅是RectButton
。
謝謝!
感謝您的想法。我最終轉而使用委託來處理它,但標籤是一個好主意。此外,我在Apple演示中看到,有一個[UIViewController storyboard]方法,他們說這是用於在Storyboard上加載任意ViewController。我也會看看。但是,感謝這個想法。我確定我會在某個地方使用它 –