我有一个以编程方式创建的标签栏,我在初始化与视图关联的故事板时遇到了困难。
我可以在没有故事板的标签栏中成功加载视图(参见下面的代码),但视图只是部分显示,因为一些UI组件在故事板中。
我的故事板的名称是MainStoryboard,我将故事板视图标识符设置为SettingsViewController。
如何在下面的代码中初始化SettingsViewController的故事板?
- (void)createTabBarItems {
tabBarController = [[UITabBarController alloc] init];
settingsViewController = [[SettingsViewController alloc] init];
UINavigationController *sett = [[[UINavigationController alloc]
initWithRootViewController: settingsViewController] autorelease];
[sett.tabBarItem setTitle:@"Settings"];
[sett.tabBarItem setImage:[UIImage imageNamed:@"settings.png"]];
[tabBarController setViewControllers:
[NSArray arrayWithObjects:sett, sett, sett, sett, nil]];
}
答案 0 :(得分:18)
如果要在故事板中初始化视图控制器,则必须使用故事板方法,而不是直接分配视图控制器:
// load the storyboard by name
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
// either one of the two, depending on if your view controller is the initial one
settingsViewController = [storyboard instantiateInitialViewController];
settingsViewController = [storyboard instantiateViewControllerWithIdentifier:@"SettingsViewController"];
答案 1 :(得分:0)
Swift 4
let storyboard = UIStoryboard(name: "Main", bundle: nil)
settingsViewController = storyboard.instantiateInitialViewController()
settingsViewController = storyboard.instantiateViewController(withIdentifier: "SettingsViewController")