如何对标签栏的第二项进行转场?

Iur*_*kov 1 xcode interface-builder sequence swift

我在从第二个按钮切换到标签栏的第二个项目时遇到了一个奇怪的麻烦。我有MainViewController2 个按钮。第一个按钮必须与标签栏的第一项链接,第二个按钮必须与标签栏的第二项链接。

任务看起来很简单。为第一个进行 segue 是基本的(我只是先链接了第一个按钮的 Tab Bar Controller),但是我在链接第二个按钮时遇到了麻烦。如果我将第二个按钮与第二个视图链接,我将看到没有标签栏的视图控制器。我需要做什么?

在此处输入图片说明 在此处输入图片说明

小智 5

您可以使用 prepare for "segue" 将下一个视图传递给 tabView。

1) 创建一个 CustomTabViewController 并加载到您的 tabView 中。 在此处输入图片说明

2) 从 ViewController 中选择 action 到 CustomTabBarViewController。 在此处输入图片说明

4) 实例化 ViewController 中的按钮并使用发送方委托来选择要显示的视图。

5)这是您需要的代码。

class ViewController: UIViewController {

// Create a value for chosed view
private var nextViewNumber = Int()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "tabBar" {

        let nextView = segue.destination as! CustomTabBarViewController

        switch (nextViewNumber) {
        case 1:
            nextView.selectedIndex = 0

        case 2:
            nextView.selectedIndex = 1

        default:
            break
        }
    }
}


@IBAction func FistView(_ sender: UIButton) {
    self.nextViewNumber = 1
    self.performSegue(withIdentifier: "tabBar", sender: self)
}

@IBAction func SecontView(_ sender: UIButton) {
    self.nextViewNumber = 2
    self.performSegue(withIdentifier: "tabBar", sender: self)

}
Run Code Online (Sandbox Code Playgroud)

}

在此处输入图片说明