gpt4 book ai didi

ios - 使用 swift 后丢弃 View

转载 作者:行者123 更新时间:2023-11-28 07:17:56 25 4
gpt4 key购买 nike

当我的应用程序启动时,会显示一个登录按钮。这是登录 View Controller 。我实例化了一个 UINavigationViewController,它具有 LoginViewController 作为 rootViewController。然后,在登录后(使用 Facebook SDK)我显示第二个 View ,一个 TableViewController。像这样:

    self.navigationController.popViewControllerAnimated(false);
self.navigationController.pushViewController(
tableView, animated: false
);

不过,这种方法存在一些问题。对于初学者,第二个 View 显示后退按钮,我知道我可以隐藏它(而且应该隐藏,因为我弹出了第一个 View )。但是,最糟糕的是,navigationController 没有分配给 TableViewController,它目前只显示一个注销按钮。因此,当我按下注销时,以下显然会崩溃:

    self.navigationController.popViewControllerAnimated(false);
self.navigationController.pushViewController(
loginView, animated: false
);

问题是:如果我使用事件登录关闭应用程序(即缓存了 facebook 登录 token ),我希望它直接转到第二个 View Controller ( TableView )。我在 5 月的 AppDelegate 中有这个,在 didFinishLaunchingWithOptions:

    if (Session.activeSession().isOpen()) {
rootViewController = tableView;
}
else {
rootViewController = loginView;
}

这种情况的最佳方法是什么?也许我应该只是堆叠两个 View (不弹出)?如果是这样,如何让第二个 View 位于同一个 navigationController 下?当应用程序在没有登录 token 的情况下启动时,执行登录然后注销后,尝试解包 tableView 会引发异常。

最好的。

最佳答案

这是模态视图 Controller 的绝佳机会!使用 UINavigationController 来满足您的任何需要(表格 View 以及其他详细信息 View )。但是当您需要用户登录时,使用导航 Controller 中的 presentViewController 以在前面显示另一个 Controller 。这可以是 UINavigationController 本身,也可以是简单的 UIViewController。完成后,调用 dismiss 方法,它就会滑落,将基本导航 Controller 留在那里,随时可以使用。希望对您有所帮助!

关于ios - 使用 swift 后丢弃 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24565459/

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