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

时间:2017-03-12 19:12:43

标签: ios swift swift3 ios10

enter image description here 这是我的TableViewController:Cells将转到第一个控制器

    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 个答案:

答案 0 :(得分:0)

sequesecond view controller联系起来,并为其指定与first view controller连接的segue以外的名称,即pickedSubjectSegue

示例:secondSegue

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

<强>代码:

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
        }
    }