从第二个按钮到第二项标签栏制作segue我有一个奇怪的麻烦。我有MainViewController
有2个按钮。第一个按钮必须与第一个标签栏项链接,第二个按钮必须与第二个标签栏项链接。
任务看起来很简单。首先制作segue是基本的(我只是将第一个按钮连接到第一个Tab Bar控制器)但是我在连接第二个按钮时遇到了麻烦。如果我将第二个按钮与第二个视图链接,我将看到没有标签栏的视图控制器。我需要做什么?
答案 0 :(得分:4)
您可以使用prepare for“segue”传递给tabView查看下一个视图。
1)创建一个CustomTabViewController并加载到tabView中。
2)从ViewController到CustomTabBarViewConstroller选择动作。
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)
}
}
答案 1 :(得分:1)
最简单的方法:
在视图中您来自:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as! TabBarViewController
vc.nextViewNumber = 4 // 4 is the tabbar number, tabbars start from 0.
}
然后,在您的TabBarViewController
中-假设您已经有一个要经常使用的标签栏。
var nextViewNumber = Int()
override func viewDidLoad() {
super.viewDidLoad()
self.selectedIndex = 2
if nextViewNumber == 4 {
self.selectedIndex = 4 // Selects the 5th tabbar
nextViewNumber = 2 // Resets
}
}