2017-01-25 31 views
0

我想用按鈕單擊打開一個新的ViewController。我創建了一個新的secondViewController類,並將名稱設置爲SecondViewController。我還添加了一個導航控制器並將其與RootView控制器相連接。但是,如果我嘗試運行它,我收到以下錯誤:enter image description here不能用Xamarin中的按鈕更改viewController

btn_Next.TouchUpInside += (object sender, EventArgs e) =>{ 

       secondViewController controller = this.Storyboard.InstantiateViewController("SecondViewController") as secondViewController; 
       this.NavigationController.PushViewController(controller, true); 
      }; 

我錯過了什麼,是類似名稱的故事板標識是一回事嗎?

回答

2

看起來你從來沒有爲你的secondViewController創建一個單獨的類。 確保你明確地創建一個新的UIViewControlle R類別:

public partial class SecondViewController : UIViewController 
{ 
} 
在你的故事板

然後,設置您的secondViewController這一類的「類」。

這會讓你投InstantiateViewController到你的SecondViewController

或者,你可以改變你的代碼如下:

 btn_Next.TouchUpInside += (object sender, EventArgs e) =>{ 

      var controller = this.Storyboard.InstantiateViewController("SecondViewController"); 
      this.NavigationController.PushViewController(controller, true); 
     }; 

如果你不喜歡有你的新的控制器單獨的類。

+0

所以我創建了新的UIViewController類,將該類添加到secondViewController並將該類實例化爲SecondViewController。但是,我仍然得到SecondViewController無法找到的錯誤。我用名字指定,但我找不到設置故事板ID的方法。 –

+0

當您在故事板中選擇UIVeiwController時(通過單擊底部邊距),打開屬性選項卡,並出現「故事板ID」字段。正確的「類」和「模塊」 – SuavePirate

+0

哦,謝謝你發現它。我總是創建一個指定視圖的UIView類,所以我看不到「故事板ID」屬性。 –