0

クラスが 1 つUIViewControllerあり、その中にボタンが 1 つあり、別のクラスから 1 つのメソッドを呼び出したいのですが、ボタンのアクションを実装するのを手伝ってくれませんか

私は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];

   }

私の質問は、別のビューにあるため、このメソッドをボタンに呼び出す方法ですか? 私は自分の中に1つのメソッドを持っていてWebViewController、私が持っている1つのボタンからそれを呼び出したい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];

}

あなたのためのボタン 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];

}
于 2012-10-16T14:36:38.937 に答える
0

通知またはデリゲートを使用するか、UIViewController で WebViewController の参照を持つことができます。

于 2012-10-16T14:31:34.387 に答える
0

メインのView Controllerに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];
}

WebViewController (ボタンなどで行ったように) を IB に割り当ててから、コードに割り当てます。

- (IBAction)ActionButton:(id)sender {
    NSLog(@"A1");
    [self.webViewController loadWebView];
}
于 2012-10-16T14:29:51.507 に答える