另一个类中的UIButton Action中的call方法

时间:2012-10-16 14:26:20

标签: objective-c ios uibutton

我有一个班级UIViewController而里面我有一个按钮,我想从另一个班级调用一个方法 你能不能帮我实现按钮的动作

我是objective-c

的新手

我的按钮UIViewController中的操作:

- (IBAction)ActionButton:(id)sender {
NSLog(@"A1");


}

WebViewControlle中的方法:

    -(void)loadWebView{

    NSURL *url = [NSURL fileURLWithPath:[ [ NSBundle mainBundle ] pathForResource:  
    @"TestName/TestName1/Test1Name1" ofType:@"html" ]];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

   }

我的问题是如何将此方法调用到我的按钮,因为它在另一个视图中? 我的WebViewController中有一种方法,我想通过UIViewController

中的一个按钮来调用它

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

假设您有一个名为ViewA的类来实现该方法。

如果您希望按钮操作调用该方法,则需要具有另一个类的实例。

-(void)loadWebView{

NSURL *url = [NSURL fileURLWithPath:[ [ NSBundle mainBundle ] pathForResource:  
@"TestName/TestName1/Test1Name1" ofType:@"html" ]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

}

按钮VIEW:

#import "ViewA.h"

ViewA *instanceOfViewA;
// assign an instance to instanceOfViewA

你的按钮方法:

- (IBAction)ActionButton:(id)sender {
NSLog(@"A1");
    [yourButton addTarget:instanceOfViewA
                  action:@selector(loadWebView)
        forControlEvents:UIControlEventTouchUpInside];

}

答案 1 :(得分:0)

您可以在主视图控制器中存储对WebViewController的引用,并向该引用发送消息,检查我的answer

代码:

MyViewController.h中的

@class WebViewController;
...
@interface MyViewController
{
    ...
}
@property (nonatomic, retain) IBOutlet WebViewController* webViewController;
...
MyViewController.m中的

#import "WebViewController.h"
...
@implementation MyViewConroller
@synthesize webViewController;

...
- (void) dealloc {
    ...
    self.webViewController = nil;
    ...
    [super dealloc];
}

在IB中分配你的WebViewController(就像你用按钮和东西做的那样),然后在代码中分配:

- (IBAction)ActionButton:(id)sender {
    NSLog(@"A1");
    [self.webViewController loadWebView];
}

答案 2 :(得分:0)

您可以使用通知或委托,或在UIViewController中引用WebViewController。