最近我开始使用 Storyboard,遇到以下情况:我想从 AppDelegate 设置 UILabel 的文本。所以我创建了一个 ViewController 实例
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle: nil];
ViewController *controller = (ViewController*)[mainStoryboard
instantiateViewControllerWithIdentifier: @"mainViewController"];
myViewController = controller;
[window addSubview:myViewController.view];
[window makeKeyAndVisible];
并从委托(delegate)中调用了以下方法
- (void) updateParameterLabel:(NSString *)parameter {
NSLog(@"URL-2: %@", parameter);
parameterLabel.text = parameter;
}
但是参数没有显示在 UI 中。
另一种想法,这是一种策略:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"View did Appear");
}
“ View 确实出现”被记录了两次......
有什么提示吗?
问候, 萨沙
最佳答案
从您的应用程序委托(delegate)中设置 UILabel
的文本并不是很好的设计。您的 View Controller 应该管理您的 View 的内容,因此它们的名称。通常情况下,您的 Storyboard会自动实例化,并且您不需要任何 storyboardWithName
等您已有的代码,假设您使用的是 Apple 的默认模板。
也许考虑重新构建您的应用程序以更严格地遵循“模型- View - Controller ”模式,并查看 Apple 如何自动实例化 Storyboard(只需在 XCode 中创建一个新的 Storyboard项目即可查看)。
关于objective-c - Storyboard的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057179/