繁体   English   中英

从tabbar控制器打开带有后退按钮的独立ViewController

[英]Opening a Separate ViewController with back button from a tabbar controller

我有一个Tabbar控制器,在那个控制器中,我显示的是5个以上的viewcontroller。 一切都按预期工作。

但是现在我有一个具有UiTableView的ViewController,在单元格上单击我要打开一个DetailView控制器。

DetailViewController将在导航视图控制器中具有标题,并且后退按钮将再次返回列表。

请帮我用Swift怎么做?

import UIKit

class ViewController: UIViewController {

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

@IBAction func moveToNexScreen(_ sender: Any) {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let nextVc = storyboard.instantiateViewController(withIdentifier: "NextViewController") as! NextViewController
    let navigationVc = UINavigationController(rootViewController: nextVc)
    present(navigationVc, animated: false, completion: nil)
}
}

class NextViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(self.closeBackButtonPressed))        
}

@objc func closeBackButtonPressed(){
    self.dismiss(animated: false, completion: nil)
}
}

将您的detailView放在UINavigationController(rootViewController: detailVc) ,然后您可以呈现它并有一个后退按钮,您可以在编程上在detailsView上添加一个barbutton项

要显示detailVC的vc应该嵌入在navigationController中,然后使用push / pop来管理show / hide

let vc = ///

self.navigationController?.pushViewController(vc, animated: true)

//

self.navigationController?.popViewController(animated: true)

采用 -

#import <DetailViewController.h>

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    NSIndexPath *indexPath = [_tableView indexPathForCell:sender];

    DetailViewController *details = (DetailViewController *)segue.destinationViewController;

    details.dictionary = _json[indexPath.row]; // to pass data

}

在故事板中 -

Select Cell and drag a segue to Details view controller

也许这个故事板插图会帮助你。 显示您需要的vcs很干净。 在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM