2011-04-21 138 views
1

我試圖從一個方法傳遞一個NSString類型的變量到另一個方法。我所做的是:在兩個方法之間傳遞一個變量

-(void)some{ 
NSString *lat = something 
NSString *longt = somethingElse 
[self test:lat:longt]; 
} 

然後

- (IBAction)test:(NSString *)lat:(NSString *)longt{ 
doSomeThing 
} 

但我的問題是,現在的IBAction爲按鈕沒有我按下啓動。

我怎麼跑我的控制之下的方法IBAction爲

+0

按鈕的意思是什麼,沒有我的新聞激活? – saadnib 2011-04-21 14:03:50

+0

表示該操作在沒有我的情況下按下按鈕執行 – Filippo 2011-04-21 14:16:24

+0

您有下面的答案,但是**沒有命名方法'test ::'**。把它命名爲'testWithLatitude:longitude:'或者更完全的'' - (void)testWithLatitude:(NSString *)aLat longitude:(NSString *)aLong;' – bbum 2011-04-21 16:12:17

回答

0

測試方法不應該是IBAction。而是這樣做:

- (void)test:(NSString *)lat:(NSString *)longt{ 
    //doSomeThing 
} 

-(IBAction)myAction:(id)sender 
{ 
    //call test from here 
    [self some]; 
} 
1

您無法通過IBAction爲傳遞任意參數,您可以通過控制發送動作或全無:

-(IBAction)action:(id)sender; 
or 
-(IBAction)action; 
+0

ok我不能使用這個解決方案傳遞變量,我是否將變量從void傳遞給IBAction? – Filippo 2011-04-21 14:10:45

+2

我認爲你並不真正瞭解目標C和/或UIKit的一些基礎知識。我會建議閱讀文檔。 – 2011-04-21 14:29:56

+0

你不會通過他們。你應該爲此目的申報一些ivars。而且,是的,閱讀文檔:) – adubr 2011-04-21 14:38:45

-1

使用

- (void) test:(NSString *)lat:(NSString *)longt 

而不是

- (IBAction)test:(NSString *)lat:(NSString *)longt 
0

您應該使用void作爲不是ibaction的方法的返回類型。如果你需要它來採取一些行動,那麼從那裏打電話。

相關問題