我如何使viewcontroller成为另一个viewcontroller的委托?

时间:2012-07-16 09:34:33

标签: iphone ios ipad

我的iPhone应用程序中有一个UIViewController。对于某些动画,我在其中创建了一个类似rootview的视图并添加了所有元素。当点击一个按钮时,我删除了该根视图并添加了另一个视图控制器view.The问题是我只加载了视图。我想在新的视图控制器中执行一个函数。为了我需要将第一个视图控制器设置为第二个视图控制器的委托?可以有人帮助我吗? / p>

2 个答案:

答案 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中发布了两个示例。