大家好,我是swift的新手,我在网上搜索了很长时间。但没用。请帮助或尝试提供一些如何实现这一点的想法。
这是主视图
当我选择“TestToNextPage”( tableViewCell )时会推送到 像这张照片的SecondView
当我选择VC2时,“Test2”按钮会将数据传回MainView 但NavigationBar会解散
我也在MainView和SecondView中尝试此代码,但是无法正常工作
override func viewWillLayoutSubviews() {
self.navigationController?.navigationBar.isHidden = false
}
tableViewCell的MainView代码
private func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath)-> UITableViewCell {
let cellIdentifer = "Cell"
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifer, for: indexPath as IndexPath)
cell.textLabel?.text = "TestToNextPage"
cell.accessoryType = .disclosureIndicator
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let SecondViewController = mainStoryboard.instantiateViewController(withIdentifier: "SecondViewController")
self.navigationController?.pushViewController(SecondViewController, animated: true)
SecondView Btn代码
var MainVC: ViewController
@IBAction func TestBtn(_ sender: UIButton){
MainVC?.MainArray = TestArray //pass TestArray to MainArray
MainVC?.delegate = self
self.performSegue(withIdentifier: "SecondSegue", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "SecondSegue" {
MainVC = segue.destination as? ViewController
MainVC?.MainArray = self.TestArray
}
func dismissMainViewController(Controller:UIViewController){
if MainVC == Controller as? ViewController{
self.TestArray = (MainVC?.MainArray)!
}
}
有没有人有任何想法或有其他最好的方法吗? 谢谢你的帮助伙伴
答案 0 :(得分:0)
尝试在故事板中的第二个视图控制器上嵌入导航控制器,然后从View Controller连接到刚刚添加的导航控制器。
答案 1 :(得分:0)
你可以试试这个
从主viewController中删除segues到secondViewController,并在第二个ViewController的TestBtn的动作中添加代码
@IBAction func TestBtn(_ sender: UIButton){
self.navigationController?.popToRootViewController(animated: true))
}