我的iPhone应用程序中有一个UIViewController
。对于某些动画,我在其中创建了一个类似rootview的视图并添加了所有元素。当点击一个按钮时,我删除了该根视图并添加了另一个视图控制器view.The问题是我只加载了视图。我想在新的视图控制器中执行一个函数。为了我需要将第一个视图控制器设置为第二个视图控制器的委托?可以有人帮助我吗? / p>
答案 0 :(得分:2)
在secondVC中,定义如下内容:
@protocol secondVCDelegate
@interface secondVC : UIViewController
@property (nonatomic, assign) id<secondVCDelegate> delegate;
@end
@optional
-(void)someDelegateMethod:(secondVC*)viewController;
@end
在创建secondVC实例时,您必须将secondVC的委托属性分配给self!像这样的东西:
// in firstVC
secondVC vc = [[secondVC alloc]...];
vc.delegate = self;
[navcontroller pushVC:vc];
行vc.delegate = self;
可以解决问题。
答案 1 :(得分:0)
您不想确定要从哪个控制器调用哪个控制器的方法?
两种情况:
一个。在第一个视图控制器中,您想要调用第二个视图控制器的方法,请使用:
[instantOfSecondViewController methodInSecondVC];
B中。在第二个视图控制器中,您要调用第一个视图控制器的方法。在这种情况下,您需要使用委托模式。
我已在此SO中发布了两个示例。