我需要一些幫助。我在Windows 10的Visual Studio 2017中使用Xamarin IOS。我使用的是故事板,並且我有一個帶有2個視圖控制器的標籤欄控制器。我的視圖控制器是A_ViewController和B_ViewController。 我想要做的是點擊A_ViewController中的一個按鈕,它在後臺線程中調用API函數。該函數定期返回一些我希望在B_ViewController中的TextView中顯示的字符串。Xamarin,iOS從tabbarcontroller獲取viewcontroller的實例
我有API回調工作,可以接收返回的字符串,但我不知道我怎麼能得到B_ViewController的實例來更新TextView並顯示API返回字符串。
我知道tabbarcontroller有一個屬性,其中包含所有視圖控制器的實例,因爲我可以通過調用「this.TabBarController.SelectedIndex = 1;」來更改視圖控制器。但從A_ViewController中,我如何使用tabbarcontroller(或任何其他方式)來獲取B_ViewController的實例?
我試着從A_ViewController如下:
B_ViewController vc = this.TabBarController.ViewControllers[1] as B_ViewController;
vc.Output_Update("Hello World"); <--- This code creates an exception.
我2個ViewControllers是這個樣子:
public partial class A_ViewController : UIViewController
{
public override void ViewDidLoad(){
base.ViewDidLoad();
mbtnCallAPI.TouchUpInside += BtnCallAPI_TouchUpInside;
}
public void BtnCallAPI_TouchUpInside(object sender, EventArgs e) {
// Call API here. API Callback will return strings
// Send return string to B_ViewController's TextView.
}
}
public partial class B_ViewController : UIViewController
{
public void Output_Update(string msg) {
mTextView.Text += msg;
}
}
「此代碼創建一個異常」 - 什麼是特定異常? – Jason
我得到一個空引用異常:對象引用未設置爲對象的一個實例。我期待看到如何從TabBarController獲取B_ViewController的實例。 – user2669496