如何在另一个视图控制器中调用方法?

时间:2015-05-11 09:44:46

标签: swift ios8

我认为这很简单,但我真的很挣扎。我在标签栏控制器中有一个地图视图,我有一个viewController,当你点击一个按钮时,它应该保存用户的坐标并在地图上添加注释。我以为我可以创建一个布尔newPost,并将其设置为true,然后在我的地图视图的viewDidLoad方法中,例如,

if newPost {
    var newAnnotation = MKPointAnnotation()
    var newPostCoordinate = CLLocationCoordinate2DMake(userPosts.last!.postLatitude, userPosts.last!.postLongitude)
    newAnnotation.coordinate = newPostCoordinate
    newAnnotation.title = userPosts.last!.postTitle
    mainMapView.addAnnotation(newAnnotati
    newPost = false
}

不幸的是,当我转到新的post viewController后回到它时mapView没有重新加载,因此viewDidLoad方法不会被再次调用。

因此,我创建了一个新方法,并尝试在点击新帖子viewController上的post按钮时调用它。这是我被卡住的地方。我以为它只会是:

mapViewController.theMethodIWantToRun()

但是我最终在调用"中找到参数#1缺少的#34;错误。我的方法没有任何论据或返回任何内容,所以我认为我不应该需要论证...

我觉得这是一个非常愚蠢的问题,但如果我能弄清楚,我就不会在这里。

如果您认为有更好的方式来做我想做的事情,请随时告诉我!谢谢!

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用viewWillAppear方法移动newPost条件。否则,在控制器之间发送数据的最佳方法是使用delegation pattern