gpt4 book ai didi

ios - 成功登录后打开标签栏 Controller swift

转载 作者:行者123 更新时间:2023-11-30 14:19:45 24 4
gpt4 key购买 nike

我对 swift 和 Storyboard非常陌生。我有一个初始 View 集,它向用户提供登录或注册选项。在我的登录 Web 服务成功后,我正在尝试打开一个选项卡栏。当我看到响应时,我开始感受到网络服务的成功。

我尝试加载选项卡栏的代码在我的初始 View Controller 中如下:

func loadHomeScreen()
{
emailField.text = ""
passwordField.text = ""
self.presentViewController(UIStoryboard.tabbarController()!, animated: true, completion: nil)
}

在该文件的最底部,我有以下内容:

private extension UIStoryboard {
class func mainStoryboard() -> UIStoryboard { return UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) }

class func tabbarController() -> TabbarController? {
return mainStoryboard().instantiateViewControllerWithIdentifier("TabbarControllerID") as? TabbarController
}
}

在我的 Storyboard中,我已经为 tabbarcontroller 提供了上面的 id。当我运行该应用程序(在 iPhone6 的模拟器上测试)时,我收到错误 'found nil while unwrapping anOptional value' 这指向上面我的 loadHome 函数中的代码行( self.presentViewController(UIStoryboard.tabbarController()!, 动画: true, 完成: nil))

如有任何帮助,我们将不胜感激

最佳答案

您可以像这样实例化 Storyboard,代码在 loadHomeScreen() 下如下所示:

emailField.text = ""
passwordField.text = ""
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("TabbarControllerID") as! TabbarController
self.presentViewController(vc, animated: true, completion: nil)

您可能需要将 bundle 更改为代码中的“mainBundle”,但这应该可行。

如果您的计划是扩展 UIStoryboard 来实例化您的 ViewControllers,这可能不是最佳解决方案,但我认为这可能会更容易/更干净,具体取决于如何您的项目已设置。

关于ios - 成功登录后打开标签栏 Controller swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com