У меня есть контроллер панели вкладок с двумя прикрепленными видами, каждый из которых встроен в контроллер навигации.Я сделал добросердечное шоу от контроллера панели вкладок до другого контроллера представления с идентификатором "toNew".В одном из представлений панели вкладок у меня есть кнопка, которая должна вызвать этот переход с идентификатором «toNew».Я попробовал DataDelegate, но он здесь не работает.
Это часть раскадровки
Это файл контроллера представления для контроллера представления, прикрепленный к панели вкладок
import UIKit
protocol DataDelegate {
func sendData(data : String)
}
class NavContToNew: UIViewController , UITabBarDelegate {
var delegate : DataDelegate?
var data : String = "ToNew"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func dismiss(_ sender: Any) {
//self.dismiss(animated: true, completion: nil)
self.delegate?.sendData(data:self.data)
print("Perform segue delegate")
}
}
А это файл контроллера tab.swift
import UIKit
class TabBarCont: UITabBarController , DataDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func sendData(data: String) {
if data == "ToNew" {
print("Segue perform")
self.performSegue(withIdentifier: "toNew", sender: self)
}
}
}