2012-08-05 40 views
1

我正在使用iOS應用程序,並遇到一些困難。我正在使用故事板並放置了一個模塊連接的按鈕,以啓動另一個視圖。該按鈕效果很好。但是,該按鈕實際上只是一個佔位符,實際上,我想要一些代碼來啓動新視圖。我已經嘗試了幾種方法,所有這些方法看起來很簡單,但沒有任何結果。有沒有辦法讓我的代碼激活我的按鈕目前激活的繼續?Xcode無法通過代碼加載視圖

回答

0

給你賽格瑞的標識符(在右側Inspector面板中),然後在視圖控制器(來自同一個故事板)做的事:

[self performSegueWithIdentifier:@"YourSeguesIdentifier" sender:self]; 
+0

函數performSegueWithIdentifier還要求發件人參數。我曾嘗試通過零作爲第二個參數。到目前爲止,屏幕上沒有可見的結果。我有NSLog告訴我代碼正在執行。 – user1577924 2012-08-05 21:50:34

1

我覺得@ctrahey的解決辦法應該工作。嘗試從源視圖控制器(而不是按鈕,但包含它的vc)將segue拖到目標視圖控制器,並確保將它的類型設置爲模態。

我認爲sender == selfnil不應該在這種情況下。

但是,如果這不起作用,我對模態vcs的慣常做法是不要在IB中爲它們繪製任何段落。相反,我讓模態VC浮動在IB中,沒有連接,在屬性檢查器上給它一個「標識符」。然後我使用這樣的代碼:

// be sure to use the real name of your storyboard 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

// use the identifier you assigned to the modal vc 
MyModalViewController *newVC = [storyboard instantiateViewControllerWithIdentifier:@"MyModalViewController"]; 

// presentingVC might be self, if this code is inside a vc 
[presentingVC presentModalViewController:newVC animated:YES]; 
+0

我會提供一些更多的細節,也許這將有助於解釋爲什麼這些解決方案無法正常工作。我正在和GameCenter合作,並嘗試在用戶和其他玩家之間創建遊戲後啓動新視圖。只要你點擊玩遊戲,我的功能啓動新的視圖執行(我可以證實這一點,因爲我有NSLogged它)。然而,所發生的只是GameCenter視圖被解僱了(這發生在我的其他代碼已經執行並且什麼都沒做之後),揭示了我原來的viewController。 – user1577924 2012-08-06 04:23:20