2

UIViewController在我的 iPhone 应用程序中有一个。对于一些动画,我在其中制作了一个类似于 rootview 的视图,并在其中添加了所有元素。当单击一个按钮时,我删除了该 rootview 并添加了另一个视图控制器视图。问题是我只是加载了视图。我想在新的视图控制器中执行一个功能。为此,我需要将第一个视图控制器设置为第二个视图控制器的委托?有人可以帮我吗?

4

2 回答 2

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;可以解决问题。

希望能帮助到你...

于 2012-07-16T10:51:27.077 回答
0

从您的输入中不确定您想从哪个控制器调用哪个控制器的方法?

两种情况:

A. 在你想调用第二个视图控制器的方法的第一个视图控制器中,使用这个:

[instantOfSecondViewController methodInSecondVC];

B. 在第二个视图控制器中,你想调用第一个视图控制器的方法。在这种情况下,您需要使用委托模式。

我已经在这个SO中发布了两者的示例。

于 2012-07-16T10:44:25.693 回答