如何创建第一个ViewController按钮单击以使用Objective C调用第二个Viewcontroller方法?

时间:2016-01-25 11:07:31

标签: ios objective-c iphone uiviewcontroller

我正在尝试创建第一个viewcontroller按钮单击以调用第二个viewcntroller方法而不进行任何导航。我的意思是需要保留第一个视图控制器,但只需要在第二个视图控制器上使用cal方法并在那里打印一些NSLog

3 个答案:

答案 0 :(得分:2)

试试这个:

第二个视图控制器:

-(void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doClickIt:) name:@"notificationName" object:nil];
}

-(void)doClickIt:(NSNotification*)notification {
}

First View Controller:

在按钮上单击名为

的IBAction方法
-(IBAction) someMethod3:(id) sender{
[[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:obj];
}

多数民众赞成。

希望它会对你有所帮助。

答案 1 :(得分:1)

如果我理解你的问题,你可以做以下事情:

在你的firstviewcontroller中:

#import "secondviewcontroller.h" - (Or the name of the viewcontroller)

在(IBAction)方法中,执行以下操作:

Secondviewcontroller *sec = [Secondviewcontroller alloc]init]
[sec theMethod];

然后它会被调用。

我可以问,你怎么想从非活动的viewcontroller调用一个动作?

答案 2 :(得分:1)

尝试以下:

ViewControllerA.h中声明方法。

ViewControllerA.m中定义方法。 如下所示:

-(NSMutableArray*) MethodOfA;

ViewControllerB.h

#import "ViewControllerA.h"
  .......
 @property (nonatomic, strong) ViewControllerA * viewControllerA;
 @property (nonatomic, strong) NSMutableArray * mutableArray;

ViewControllerB.m

在你的Button动作中添加以下代码:

self.mutableArray =[self.viewControllerA MethodOfA];