为了账号安全,请及时绑定邮箱和手机立即绑定

以编程方式使用情节提要设置初始视图控制器

以编程方式使用情节提要设置初始视图控制器

当年话下 2019-07-11 13:30:58
以编程方式使用情节提要设置初始视图控制器如何以编程方式设置InitialViewController作为一个故事板?我想打开我的故事板,以一个不同的观点,取决于某些条件,可能会有所不同的发射,发射。
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

如何一个虚拟的初始视图控制器

确保所有初始视图控制器都有一个故事板ID。

在情节提要中,取消选中第一个视图控制器中的“is Initial View Controller”属性。

如果您在此时运行您的应用程序,您将看到:

Failed to instantiate the default view controller for UIMainStoryboardFile 'MainStoryboard' - perhaps the designated entry point is not set?

您会注意到,应用程序委托中的窗口属性现在为零。

在应用程序设置中,转到目标和Info标签。有明确的价值Main storyboard file base name..在General选项卡,清除Main Interface..这将删除警告。

在应用程序委托中创建窗口和所需的初始视图控制器application:didFinishLaunchingWithOptions:方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UIViewController *viewController = // determine the initial view controller here and instantiate it with 
    [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];

    return YES;}


查看完整回答
反对 回复 2019-07-11
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

为了所有的斯威夫特在外面的情人们,这是答案@Travis翻译成斯威夫特:

做什么@Travis在目标C代码之前解释。然后,

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    var exampleViewController: ExampleViewController = mainStoryboard.instantiateViewControllerWithIdentifier("ExampleController") 
    as! ExampleViewController

    self.window?.rootViewController = exampleViewController    self.window?.makeKeyAndVisible()

    return true}

这个ExampleViewController将是您想要显示的新的初始视图控制器。

这些步骤说明:

  1. 创建一个具有当前窗口大小的新窗口,并将其设置为我们的主窗口
  2. 实例化一个故事板,我们可以使用它来创建新的初始视图控制器。
  3. 实例化我们的新的初始视图控制器,基于它的Storyboard ID
  4. 将新窗口的根视图控制器设置为我们刚刚启动的新控制器
  5. 使我们的新窗口可见

享受和快乐的节目!


查看完整回答
反对 回复 2019-07-11
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

中以编程方式设置键窗口的rootViewController(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

例如:

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    if (shouldShowAnotherViewControllerAsRoot) {
        UIStoryboard *storyboard = self.window.rootViewController.storyboard;
        UIViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"rootNavigationController"];
        self.window.rootViewController = rootViewController;
        [self.window makeKeyAndVisible];
    }

    return YES;}


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 1016 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信