2012-05-23 6 views
0

У меня есть IBAction, что при срабатывании вызывает другой метод в другом контроллере представления (APICallsViewController). Я также хочу отправить этот метод NSString (сообщение)Как отправить 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]; 

} 

ответ

1

сделать этот код в 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]; 

} 
1

Объявляет строку в ViewController туда, где вы должны пройти string.And в окне, из которого вы должны передать строку, в вашем случае, установить как apiViewController.stringintheotherview = сообщение;

Строка в вашем APICallsViewController должны быть синтезированы

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

Почему вы хотите передать String программно, вместо объявления параметра функции? Вы можете изменить функцию к чему-то вроде

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

называют это с

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

Объявите свойство в SecondViewController. Затем вы можете получить строку в SecondViewController в 2way.

  1. В FirstViewController SomeMethod после создания объекта для secondviewController можно присвоить значение непосредственно

    second.string2 = [NSString stringWithFormat: @ "% @", [TextField текст]];

  2. Создайте метод в SecondViewController и назначьте через него.

Смежные вопросы