是否可以使用相同的视图控制器为每个显示不同的内容?

时间:2015-03-13 11:12:04

标签: ios swift viewcontroller

我解释了我的问题:在我的iOS应用程序中,用Swift编写,我有一个mapview,使用mkmapkit,我添加了mkpoint注释,总共七个。当我点击每个注释标注时,它会使用performSegueWithIdentifier打开一个新的视图控制器。 我的问题是:我是否需要使用七个不同的视图控制器,每个注释标注一个,或者我只能使用一个视图控制器?因为视图控制器设计对于所有注释标注点击必须相同,但每个注释标注的内容数据不同。

抱歉我的英语不好。我希望能解决这个问题

3 个答案:

答案 0 :(得分:3)

当您通过performSegueWithIdentifier执行segue时,会调用prepareForSegue。重写此方法以将数据传递到目标ViewController:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "mySegueIdentifier" {
        let destinationViewController = segue.destinationViewController as MyDestinationViewController

        // pass data to destinationViewController
        destinationViewController.myProperty = ...
    }
}

答案 1 :(得分:0)

当然你应该只使用一个ViewController。您只需将MapViewController中的数据传递到ViewControllerperformSegue。并显示它。

此模式称为Master-Detail,您可以在此处找到更多信息:
An iOS 8 Swift Split View Master-Detail Example

答案 2 :(得分:0)

使用prepareForSegue将个人信息传递到同一视图。