【发布时间】:2013-07-04 01:17:33
【问题描述】:
这可能听起来很傻,但请继续阅读......
我想从故事板实例化的UIViewController 外部设置UILabel 的文本。我需要确保在设置视图控制器的文本时设置了视图控制器的标签属性,否则将不会设置标签的文本(因为尚未加载它以接收文本值)。
这是我目前的解决方案:
// Show pin entry
if (!self.pinViewController) {
// Load pin view controller
self.pinViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"pinScreen"];
self.pinViewController.delegate = self;
if (!self.pinViewController.view) {
// Wait for pin screen to fully load
}
[self.pinViewController setMessageText:@"Set a pin for this device"];
}
最初我有一个while 循环,循环直到view 的值不是nil,但似乎检查视图的行为会加载它(如此处所述:http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW37)
我尝试使用isViewLoaded 方法没有成功。它只是永远循环。
我已经将上面的代码作为我当前的解决方案,但感觉不对。
有没有更好的方法确保 UIView 已加载?
【问题讨论】:
-
如果操作正确,
viewController.view永远不会是nil,因为如果尚未创建视图,getter 将创建视图