我遇到了这样的情况:
我有一个UIViewController VC1,它有一个容器视图。此容器视图包含另一个UIViewController - VC2。我需要在 VC2 中设置一个属性,并在设置该属性之后,更新与VC2连接为IBOutlet的标签上的文本。我可以通过执行在故事板中创建的带有标识符"segueToVC2“的segue来访问VC2。在设置了performSegueWithIdentifier - PROPERTY1的属性之后,我调用了一个performSegueWithIdentifier方法,即在property 1的didSet方法中调用performSegueWithIdentifier。问题是,由容器视图持有的VC2视图尚未加载,而我连接到VC2的IBOutlets视图都为零。这会导致我的应用程序崩溃。
我该如何解决这个问题?
提前谢谢。
发布于 2016-03-21 22:07:32
好的,我已经设法用处理VC1的方式解决了这个问题:我已经从AppDelegate直接设置了VC2所需的属性,一切都很好。
发布于 2016-03-20 16:00:50
我不知道IBOutlets是什么,还没有给目标C编程.另外,我不知道为什么需要使用performSegueWithIdentifier,因为您告诉我们VC2包含在容器视图中。
VC1中的容器视图使用嵌入式segue链接到VC2。您可以在VC2的prepareForSegue中获得一个副本,在viewDidLoad或viewWillAppear中可以设置VC2的属性。
无论如何,这就是我在Xamarin.iOS上做的。祝好运。
发布于 2016-03-20 16:03:16
必须设置属性(文本、颜色等)IBOutlets在VC2中的viewDidLoad方法。现在,要从VC1中设置这些值,您应该在VC2上创建一些属性,以保存要从VC1传递给VC2的数据。然后,在VC1中的‘VC1’方法上设置VC2上所需的属性。然后在VC2中,viewDidLoad使用这些属性更新IBOutlets。
https://stackoverflow.com/questions/36115861
复制相似问题