【问题标题】:Swift: miss tab bar after click Back buttonSwift:单击后退按钮后错过标签栏
【发布时间】:2014-12-31 18:42:32
【问题描述】:

我是 swift 和 IOS 开发的新手。我正在开发一个选项卡式应用程序(3 个视图)。例如,FirstView、SecondView 和 ThirdView。 FirstView 有一个打开 addNewSession 视图的按钮,而 addNewSession 视图有一个返回 FirstView 的返回按钮。问题是从 addNewSession 视图返回后标签栏消失了

FirstView 到 addNewSession 视图。

 @IBAction func toAddNew(sender: AnyObject) {
            let addNewSession = self.storyboard?.instantiateViewControllerWithIdentifier("addNewSession") as addNew
            self.presentViewController(addNewSession, animated: true, completion: nil)
        }

将NewSession 视图添加到FirstView

@IBAction func backToPrev(sender: AnyObject) {
        println("test1")
        let FirstView = self.storyboard?.instantiateViewControllerWithIdentifier("FirstView") as FirstViewController
        self.presentViewController(FirstView, animated: true, completion: nil)
    }

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    问题是您的 backToPrev 方法正在实例化一个新的 FirstViewController,这与您来自的实例不同。你并没有真正回到原来的那个,你正在展示一个新的。这不是你想要的。

    执行此操作的正确方法是将 FirstViewController 嵌入到导航控制器中,然后将 addNew 控制器推送到它上面。当您使用导航控制器时,您可以免费获得返回行为。

    希望您使用的是故事板?选择您的 FirstViewController,进入 Editor 菜单并选择 Embed in Navigation Controller。

    在您的 toAddNew 中,使用 self.navigationController.pushViewController 代替 presentViewController 来推送您的 addNew 控制器。

    还有一种更简单的方法可以完成最后一步,即使用 segue。您可以控制故事板中从 FirstViewController 中的按钮到 addNew 控制器的拖动,并创建一个 Show segue。当按钮被触摸时,这将自动显示您的 addNew 控制器。使用这种方法,您将需要删除您的 toAddNew IBAction 和连接,因为它是多余的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2012-06-24
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多