我怎样才能从类加载故事板编程?
我的问题是,我正在寻找使用故事板和xib的方式 。 但我找不到正确的方式加载和以编程方式显示故事板。 项目是从xib开始开发的,现在很难将所有的xib文件嵌套在storyboard中。 所以我正在寻找一种方法来做到这一点,如使用alloc, init, push
for viewControllers。 在我的情况下,故事板中只有一个控制器: UITableViewController
,它具有静态单元格,并显示一些内容。 如果有人知道正确的方式与xib和故事板一起工作,而没有巨大的重构,我将不胜感激任何帮助。
在故事板中,转到“属性”检查器并设置视图控制器的标识符。 然后您可以使用下面的代码呈现该视图控制器。
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"myViewController"]; vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentViewController:vc animated:YES completion:NULL];
Swift 3
let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewController(withIdentifier: "viewController") self.navigationController!.pushViewController(vc, animated: true)
Swift 2
let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("viewController") self.navigationController!.pushViewController(vc, animated: true)
条件
将一个Storyboard ID分配给您的视图控制器。
IB>显示身份检查器>身份>情节串联ID
斯威夫特(遗产)
let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("viewController") as? UIViewController self.navigationController!.pushViewController(vc!, animated: true)
编辑:斯威夫特2build议在评论由弗雷德A.
在属性检查器给这个视图控制器的标识符和下面的代码为我工作
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; DetailViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"]; [self.navigationController pushViewController:detailViewController animated:YES];
尝试这个
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"Login"]; [[UIApplication sharedApplication].keyWindow setRootViewController:vc];
迅速
NavigationController和pushController你可以replace
present(vc, animated:true , completion: nil)
在Xamarion.iOS(C#)中:
var storyBoard = UIStoryboard.FromName(name: "Main", storyboardBundleOrNil: null); var viewController = storyBoard.InstantiateViewController(identifier: "viewController"); NavigationController.PushViewController(viewController: viewController, animated: true);
- setObject:forKey:和setValue:forKey:在NSMutableDictionary中的区别在哪里?
- 应用程序未安装:此应用程序仍处于开发模式
- Xcode – 自由曲线,守卫边和守卫malloc
- UIButton长按活动
- Xcodedebugging器:查看variables的值
- iPhone上的纵向UISplitViewController显示细节VC而不是主
- 看到iPhone X模拟器顶部和底部的黑色条纹
- XCODE 7.1 Swift 2 Interface Builder文件中的未知类
- Swift框架不能使用除“Debug”或“Release”以外的其他构buildconfiguration:没有这样的模块