-1
我有一個類ErrorMessageViewController:如何正確設置實例化視圖控制器的控件的值?
// ErrorMessageViewController.h
@interface ErrorMessageViewController: UIViewController
@property (nonatomic, strong) IBOutlet UILabel* messageTitle;
@property (nonatomic, strong) IBOutlet UILabel* messageContent;
@end
// ErrorMessageViewController.m
@implementation ErrorMessage
@synthesize messageTitle, messageContent;
@end
我實例化這個觀點是這樣的控制器:
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ErrorMessageViewController * errorMessage = (ErrorMessageViewController *) [storyboard instantiateViewControllerWithIdentifier:@"ErrorMessage"];
[[errorMessage messageTitle] setText:@"Error"];
[[errorMessage messageContent] setText:@"Duplicate ID"];
[[self navigationController] pushViewController:errorMessage animated:YES];
但出現視圖控制器的messageTitle和在messageContent的UILabel是空的。我仔細檢查並確保UILabel
s連接到故事板的UILabel
s。
這是怎麼發生的?如何從instantiateViewControllerWithIdentifier:
正確初始化對象的控件?
嘿,這工作!謝謝!我可以問爲什麼這個工作,而不是直接將值設置爲控件? –
由於初始化時尚未創建。無論您將其設置爲強大,您的插座仍然無效。它就像viewController的視圖還沒有創建,所以viewDidLoad它的工作原理,因爲在這部分loadView()已經被調用,你的插座被創建。 – nferocious76
同意,並改變網點爲弱。 – danh