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确定之后,您可以在委托中添加观察者&调用方法&从委托中,您可以调用任何视图控制器的方法