如何使用导航栏项转到其他视图控制器?

Posted

技术标签:

【中文标题】如何使用导航栏项转到其他视图控制器?【英文标题】:How to go to other view Controller using Navigation Bar Item? 【发布时间】:2017-03-12 19:12:43 【问题描述】:

这是我的 TableViewController: Cells will segue to First controller

    import UIKit

class SubjectsTableViewCell: UITableViewCell 
    @IBOutlet weak var subjectImage: UIImageView!
    @IBOutlet weak var subjectName: UILabel!


class AddQuestionTableViewController: UITableViewController 

    var Subjects = ["Geology", "Mathematics", "Computer", "English", "History", "Science"]

    override func viewDidLoad() 
        super.viewDidLoad()

    


    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return (Subjects.count)
    

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
        performSegue(withIdentifier: "pickedSubjectSegue", sender: Subjects[indexPath.row])
    

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
        let next = segue.destination as! SubViewController
        next.myLabel = sender as! String
    


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SubjectsTableViewCell


        cell.subjectName?.text = Subjects[indexPath.row]
        cell.subjectImage?.image = UIImage(named: (Subjects[indexPath.row] + ".jpeg"))

        return cell
    

        override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

如何使用添加导航栏项移动到第二个视图控制器?

我尝试了什么:ctrl + 拖动然后模态 - 失败。

我应该使用 action 还是 segue?但我已经在表格单元格中使用了 segue。

非常感谢任何帮助。谢谢

【问题讨论】:

【参考方案1】:

seque 连接到second view controller 并为其命名,而不是连接到first view controller 的segue,即pickedSubjectSegue

示例:secondSegue

然后在prepareSegue 方法中,在执行任何操作之前检查两个segue 的标识符:

代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
    
        if segue.identifier = "pickedSubjectSegue"
        
            let next = segue.destination as! SubViewController
            next.myLabel = sender as! String
        
        else
        
            //Write your code here
        
    

【讨论】:

以上是关于如何使用导航栏项转到其他视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

将选项卡栏项与在其堆栈中显示第二个视图控制器的导航控制器相关联?

使用标签栏和导航实例化深度视图控制器

如何从 UIButton 到选项卡栏项?

如何允许标签栏项具有多个视图控制器

在 Swift 中调整导航栏项的位置

如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?