我已经阅读过帖子使用Storyboard将数据传递给视图,但是仍然有调用方法的问题:
现在我有AViewController
和BViewController
,都与故事板连接(没有XIB)。
在BViewController中:
-(void)doSth:(int)num;
那么如何在doSth:
中调用AViewController
方法?
像[bViewController doSth:123];
这样的旧方法不起作用,因为我无法在故事板中获取BViewController
的实例。
感谢。
峰
答案 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];
。