2012-10-16 46 views
0

我有一類UIViewController和裏面我有一個按鈕,我想從另一個調用類 一個方法,請你幫我落實在行動上爲我的按鈕調用方法在另一類

我是新來目標c

UIViewController我的按鈕操作:

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


} 

我的方法在WebViewControlle R:

-(void)loadWebView{ 

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

    } 

我的問題是如何調用這個方法到我的按鈕,因爲它是在另一個視圖? 我在我的WebViewController一個方法,我想從一個按鈕,我在UIViewController

回答

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

} 
+0

我通過界面而不是編程創建我的按鈕 – AntonMac

+0

感謝它的工作原理:) – AntonMac

+0

不是一個好的解決方案,只有當用戶點擊兩次或更多按鈕時纔會調用loadWebView。 –

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]; 
} 

將您的WebViewController在IB,然後在代碼(如你有按鈕和東西一樣):

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

請你寫你是什麼意思的代碼,我有一個方法,我WebViewControllerand我想從我在UIViewController中的一個按鈕調用它 – AntonMac

+0

我已經更新了我的答案,其中包含更好的一段代碼 –

+0

在我的方法中我錯誤了自我 – AntonMac

0

您可以使用通知或委託或具有WebViewController的在UIViewController參考..

+0

請問你寫代碼你是什​​麼意思 – AntonMac