我需要一些帮助。我在Windows 10的Visual Studio 2017中使用Xamarin IOS。我使用了故事板,我有一个带有2个视图控制器的标签栏控制器。我的视图控制器是A_ViewController和B_ViewController。 我想要做的是单击A_ViewController中的一个按钮,该按钮在后台线程中调用API函数。该函数定期返回一些我希望在B_ViewController中的TextView中显示的字符串。
我有API回调工作,可以收到返回字符串,但我不知道如何获取B_ViewController实例来更新TextView并显示API返回字符串。
我知道tabbarcontroller有一个包含所有视图控制器实例的属性,因为我可以通过调用" this.TabBarController.SelectedIndex = 1;"来更改视图控制器。但是从A_ViewController如何使用tabbarcontroller(或任何其他方式)来获取B_ViewController的实例?
我已经从A_ViewController尝试了以下内容:
<div id="overview">
我的2个ViewControllers看起来像这样:
B_ViewController vc = this.TabBarController.ViewControllers[1] as B_ViewController;
vc.Output_Update("Hello World"); <--- This code creates an exception.
答案 0 :(得分:0)
我认为mTextView尚未创建。如果您现在尝试设置文本,它将抛出NullReferenceException。
在我看来,这不是让控制器相互依赖的好方法。例如,A_ViewController不应该知道B_ViewController。而是将响应字符串保留在某处,并在B_Controller中可见时更新文本视图。