У меня есть TabViewController, который имеет три вкладки, которые ведут к трем ViewController.
Я могу очень легко переходить с помощью реальных кнопок вкладок TVC. Однако я также хочу перейти на одну из вкладок, используя UIButton. У меня есть кнопка в одном ViewController, и я хочу перейти к другому, но не с помощью кнопки Tab.
У меня была пара частичных успехов. Под частичным я подразумеваю, что VC появляется, но TabBar нет!
Код для контроллера вида, в котором находится UIButton, находится ниже:
import UIKit
class HomeView: UIViewController {
@IBOutlet var startBtn: UIButton! //Define the start button as a variable
@IBOutlet var homeText: UILabel! //Define the text on the home screen
override func viewDidLoad() {
super.viewDidLoad()
setBackground(); //Set background image
setStartBtn();
setHomeText();
}
func setBackground() {
// Apply the insets…
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "Background.png")
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
}
func setStartBtn() {
let startBtnText = NSLocalizedString("Start Test", comment: "")
startBtn.addTarget(self, action: #selector(self.clickStart(_:)), for: .touchUpInside) //Add a target and action of the start buton
startBtn.setTitle(startBtnText, for: [])
}
func setHomeText() {
let homeTextStr = NSLocalizedString("Home Text", comment: "")
homeText.text = homeTextStr
}
@objc func clickStart(_ sender: UIButton) {
}
}
РЕШЕНИЕ:
Функция Click Start выглядит так, как мне нужно (благодаря принятому ответу ниже).
@objc func clickStart(_ sender: UIButton) {
self.tabBarController?.selectedIndex = 1 // 1 is the second tab
}
Это позволило мне перейти ко второму элементу панели вкладок из кнопки UIB в представлении