【问题标题】:Load Tab Bar Controller from AppDelegate从 AppDelegate 加载标签栏控制器
【发布时间】:2018-02-10 19:56:21
【问题描述】:

我一直在尝试自己解决这个问题,但无法解决。

我想从我的 AppDelegate 加载一个标签栏控制器(在 Google 成功登录到应用程序之后)。

我在这里阅读了如何从 AppDelegate 加载 ViewController

Perform Segue from App Delegate swift

示例中的代码:

// Access the storyboard and fetch an instance of the view controller
let storyboard = UIStoryboard(name: "Main", bundle: nil);
let viewController: MainViewController = storyboard.instantiateViewController(withIdentifier: "ViewController") as! MainViewController;

// Then push that view controller onto the navigation stack
let rootViewController = self.window!.rootViewController as! UINavigationController;
rootViewController.pushViewController(viewController, animated: true);

根据我的理解,在此示例中,我的 TabBar 需要名称和标识符。

有人可以向我解释一下吗?我在 Tab Bar Controller 上找不到“标识符”,只有“标题”。

另外,我的应用中没有导航控制器视图。

【问题讨论】:

    标签: ios swift xcode uitabbarcontroller appdelegate


    【解决方案1】:

    在此处设置情节提要 ID

    并在navigationController中嵌入IB中的firstViewController

     let rootViewController = self.window!.rootViewController as! UINavigationController;
     rootViewController.pushViewController(viewController, animated: true);
    

    【讨论】:

    • 感谢您的快速回复。所以这是 Storyboard ID 是标识符。名字呢?关于更改 root - 这与示例中的有何不同?
    • 我刚刚看到你编辑了帖子。我现在已经设置了 StoryboardID。它是“MainTabBar”。在 IB 中嵌入 firstViewController 是什么?在导航控制器?我没有navigationController,什么是IB?
    • IB 是 Interface Builder ,选择视图控制器,箭头指向它的中间,从左到右,在 Editor 菜单中选择 Embed in navigation controller
    • 当你说“firstViewController”时,你的意思是登录发生的视图控制器?
    • 在 IB 中选择导航控制器,并在右侧作为 Storyboard ID ,取消选中显示导航栏,还要注意所有即将到来的礼物都将被推送和关闭将弹出
    【解决方案2】:

    iOS 13 更新

    来自版本。 iOS 13, RootViewController 将在位于 scene 的函数中启动 SceneDelegate.swift 而不是 AppDelegate.swift 文件。看起来像这样。

    示例:

             // Simple init
            let mainSB: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let loggedInTabController = mainSB.instantiateViewController(identifier: "loggedInTabController")
            self.window!.rootViewController = loggedInTabController
    

    【讨论】:

      猜你喜欢
      • 2014-01-06
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多