使用Storyboard在视图控制器之间调用方法

时间:2011-06-12 06:48:01

标签: iphone objective-c storyboard viewcontroller ios5

我已经阅读过帖子使用Storyboard将数据传递给视图,但是仍然有调用方法的问题:

现在我有AViewControllerBViewController,都与故事板连接(没有XIB)。

在BViewController中:

-(void)doSth:(int)num;

那么如何在doSth:中调用AViewController方法?

[bViewController doSth:123];这样的旧方法不起作用,因为我无法在故事板中获取BViewController的实例。

感谢。

2 个答案:

答案 0 :(得分:2)

我发现如果我使用:

MapViewController *mapView = [self.storyboard instantiateViewControllerWithIdentifier:@"MapView"];

(" MapView"是我在故事板中为该场景/视图设置的标识符)

我只是测试了旧的方式,它对我有用:

mapViewController *mapView = [[mapViewController alloc] initWithNibName:@"mapViewController" bundle:[NSBundle mainBundle]];

我可以直接调用MapViewController中的方法,也就是

[mapView testMethod];

答案 1 :(得分:1)

您需要在视图控制器中实现prepareForSegue:sender:方法。第一个参数是UIStoryboardSegue对象,它引用了源视图控制器和目标视图控制器。这应该可以让你像以前一样做[bViewController doSth:123];