0

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

我是objective-c的新手

我的按钮操作UIViewController

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


}

我在WebViewController 中的方法:

    -(void)loadWebView{

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

   }

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

4

3 回答 3

1

你可以试试这个:

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

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

-(void)loadWebView{

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

}

为您按钮查看:

#import "ViewA.h"

ViewA *instanceOfViewA;
// assign an instance to instanceOfViewA

你的按钮方法:

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

}
于 2012-10-16T14:36:38.937 回答
0

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

代码:

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];
}
于 2012-10-16T14:29:51.507 回答
0

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

于 2012-10-16T14:31:34.387 回答