2011-04-21 87 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的方法的返回类型。如果你需要它来采取一些行动,那么从那里打电话。

相关问题