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

Ios 如何创建第一个Viewcontroller按钮单击以使用Objective C调用第二个Viewcontroller方法?,ios,objective-c,iphone,uiviewcontroller,Ios,Objective C,Iphone,Uiviewcontroller,我正在尝试创建第一个viewcontroller按钮单击以调用第二个viewcntroller方法,而无需任何导航。我的意思是需要保持第一视图控制器,但只需要在第二视图控制器上校准方法,并在那里打印一些NSLog如果我正确理解您的问题,您可以执行以下操作: Secondviewcontroller *sec = [Secondviewcontroller alloc]init] [sec theMethod]; 在firstviewcontroller中: #import "secondvie

我正在尝试创建第一个
viewcontroller
按钮单击以调用第二个viewcntroller方法,而无需任何导航。我的意思是需要保持第一视图控制器,但只需要在第二视图控制器上校准方法,并在那里打印一些
NSLog
如果我正确理解您的问题,您可以执行以下操作:

Secondviewcontroller *sec = [Secondviewcontroller alloc]init]
[sec theMethod];
在firstviewcontroller中:

#import "secondviewcontroller.h" - (Or the name of the viewcontroller)
在(iAction)方法中,执行以下操作:

Secondviewcontroller *sec = [Secondviewcontroller alloc]init]
[sec theMethod];
然后它会被调用


我可以问一下,您为什么要从非活动的viewcontroller调用操作?

如果我正确理解您的问题,您可以执行以下操作:

Secondviewcontroller *sec = [Secondviewcontroller alloc]init]
[sec theMethod];
在firstviewcontroller中:

#import "secondviewcontroller.h" - (Or the name of the viewcontroller)
在(iAction)方法中,执行以下操作:

Secondviewcontroller *sec = [Secondviewcontroller alloc]init]
[sec theMethod];
然后它会被调用

我可以问一下,为什么要从非活动的viewcontroller调用操作?

只需尝试以下操作:

第二视图控制器:

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

-(void)doClickIt:(NSNotification*)notification {
}
第一视图控制器:

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

-(void)doClickIt:(NSNotification*)notification {
}
在按钮上单击名为的iAction方法:

-(IBAction) someMethod3:(id) sender{
[[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:obj];
}
就这样

希望它能对您有所帮助。

只需尝试以下方法:

第二视图控制器:

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

-(void)doClickIt:(NSNotification*)notification {
}
第一视图控制器:

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

-(void)doClickIt:(NSNotification*)notification {
}
在按钮上单击名为的iAction方法:

-(IBAction) someMethod3:(id) sender{
[[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:obj];
}
就这样

希望它能对您有所帮助。

尝试以下内容:

ViewControllerA.h
中声明一个方法

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

-(NSMutableArray*) MethodOfA;
视图控制器b.h
中:

#import "ViewControllerA.h"
  .......
 @property (nonatomic, strong) ViewControllerA * viewControllerA;
 @property (nonatomic, strong) NSMutableArray * mutableArray;
视图控制器b.m
中:

在按钮操作中添加以下代码:

self.mutableArray =[self.viewControllerA MethodOfA];
请尝试以下操作:

ViewControllerA.h
中声明一个方法

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

-(NSMutableArray*) MethodOfA;
视图控制器b.h
中:

#import "ViewControllerA.h"
  .......
 @property (nonatomic, strong) ViewControllerA * viewControllerA;
 @property (nonatomic, strong) NSMutableArray * mutableArray;
视图控制器b.m
中:

在按钮操作中添加以下代码:

self.mutableArray =[self.viewControllerA MethodOfA];

你需要更详细地解释你的问题,同时发布你所有的代码。听上去,你的应用程序的设计/结构有一些问题。调用未使用的viewController的功能非常奇怪。您很可能希望在两个ViewControllers之间共享具有此功能的第三个类。您需要更详细地解释您的问题,并发布所有代码。听上去,你的应用程序的设计/结构有一些问题。调用未使用的viewController的功能非常奇怪。您很可能希望在两个ViewController之间共享具有此功能的第三个类No visible@interface for secondviewcontroller声明选择器“theMethod”@Jakob Mikkelsen其工作正常,但在进入方法内部后,不调用另一个方法@Jakob Mikkelsen当然它必须在一个方法中,请将其标记为正确。secondviewcontroller没有可见的@interface声明选择器“theMethod”@Jakob Mikkelsen它正在工作,但在进入内部方法后,不会调用另一个方法@Jakob Mikkelsen当然它必须在一个方法中,请将它标记为正确。这实际上不起作用,因为一旦导航开始,viewDidLoad就被调用了。而且,仅仅在视图上调用一个方法,使用通知似乎非常麻烦controller@shabbirv好的,然后您可以在委托中添加观察者&调用方法&从委托中,您可以调用任何视图控制器的方法。这实际上不起作用,因为一旦导航开始,就调用viewDidLoad。而且,仅仅在视图上调用一个方法,使用通知似乎非常麻烦controller@shabbirv确定之后,您可以在委托中添加观察者&调用方法&从委托中,您可以调用任何视图控制器的方法