我正在尝试在Xcode中创建一个标签式应用程序,允许用户在FirstViewController类上拍摄照片并对其进行编辑,完成后将它们显示在SecondViewController上。
当我启动项目时,Xcode会在故事板中为我自动创建两个viewControllers。我现在需要的是找到生成的第二个viewController的实例,这样我就可以调用一个方法并将一个参数(UIImage)从第一个视图控制器传递到第二个视图控制器。
FirstViewContoller.m
-(void) passImageToSecondVC (UIImage *) img
{
[<instanceOf_SecondViewController> receiveImg: img];
}
SecondViewContoller.m
-(void) receiveImage (UIImage *) img
{
//Code to display the image received
}
我问的是如何找到由Xcode生成的SecondViewController实例的名称(在示例代码中由&lt;&gt;显示),因此我可以调用此方法。
虽然我非常接近于以编程方式执行此操作,但我发现更容易通过故事板学习如何执行此操作,我也非常愿意听到此问题的其他解决方案。谢谢!
答案 0 :(得分:2)
通过故事板无法做到这一点。您无法通过其名称访问视图控制器。每个视图控制器都可以通过self.tabBarController访问选项卡栏控制器。您可以从选项卡栏控制器的viewControllers数组访问各个控制器。因此,要在第二个选项卡中获取对控制器的引用,可以使用self.tabBarController.viewControllers [1]。
答案 1 :(得分:0)
使用委托模式。 使一个vc成为另一个vc的委托,并在它们之间传递数据。我认为这是一种常见的情况。 https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html