如何发送一个NSString到另一个视图控制器

我有一个IBAction,当触发时在另一个视图控制器(APICallsViewController)中调用另一个方法。 我正在寻找也发送该方法一个NSString(消息)

这里是我的IBAction推送到APICallsViewController和NSString消息。 我的问题可能是如何在其他视图控制器的方法中获取该NSString的内容。

谢谢你的帮助

-(IBAction) someMethod{ APICallsViewController *apiViewController = [[APICallsViewController alloc] init]; [self.navigationController pushViewController:apiViewController animated:YES]; NSString *message = [NSString stringWithFormat:@"Check out %@", nameLb.text]; [apiViewController apiGraphUserCheckins]; [apiViewController release]; } 

在APICallsViewController.h中执行此代码

 @interface APICallsViewController : UIViewController{ NSString *strMessage; } @property(nonatomic,retain) NSString *strMessage; @end 

APICallsViewController.m

  @synthesize strMessage; - (void)viewDidLoad { Nslog(@"%@",strMessage); 

}


 -(IBAction) someMethod{ APICallsViewController *apiViewController = [[APICallsViewController alloc] init]; [self.navigationController pushViewController:apiViewController animated:YES]; NSString *message = [NSString stringWithFormat:@"Check out %@", nameLb.text]; apiViewController.strMessage=message; [apiViewController apiGraphUserCheckins]; [apiViewController release]; } 

在视图控制器中声明一个string,你必须传递string。在视图中你必须传递string,在你的情况下,像apiViewController.stringintheotherview = message;

APICallsViewController中的string必须合成

  NSString *message = [NSString stringWithFormat:@"Check out %@", nameLb.text]; APICallsViewController *apiViewController = [[APICallsViewController alloc] init]; apiViewController.stringintheotherview=message; [self.navigationController pushViewController:apiViewController animated:YES]; 

为什么要以编程方式传递string,而不是声明函数参数? 你可以把function改成类似的东西

 - (void) apiGraphUserCheckins:(NSString *)message; 

用它来呼叫

 [apiViewController apiGraphUserCheckins:[NSString stringWithFormat:@"Check out %@", nameLb.text]]; 

在SecondViewController中声明一个属性。 然后你可以在2ways中得到SecondViewController中的string。

  1. 在为firstviewController创build对象之后的FirstViewController someMethod中,您可以直接赋值

    second.string2 = [NSString stringWithFormat:@“%@”,[textField text]];

  2. 在SecondViewController中创build一个方法并通过它进行分配。