2013-04-11 21 views
1

好吧,讓我說我有兩個viewcontroller「ViewControllerA」和「ViewControllerB」。我正在做的是當按鈕在viewControllerA中按下時,我的本地服務器返回一個值並將其存儲在變量「user」中。之後,我將這個變量傳遞給viewControllerB。iphone開發:與服務器通信並推送到另一個視圖

其實我可以同時做這兩個過程,但不是在同一時間。我的意思是我可以接收來自服務器的響應並將其存儲在字符串變量中。我通過使用委託方法做到這一點:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 

所以在這方面沒有問題。

在另一方面,我也可以通過傳遞一個變量從viewControllerA到viewControllerB:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if([segue.identifier isEqualToString:@"vcSegue"]){ 
     ViewControllerB *controller = (ViewControllerB *)segue.destinationViewController; 
     controller.stringVariable = @"content of the string"; 
    } 
} 

的思考是,當我想通過字符串變量這是我從服務器到viewControllerB我臉上有有一個問題,即變量爲空。那麼我怎樣才能控制推動動作呢?因爲我的理解是-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender應該在- (void)connectionDidFinishLoading:(NSURLConnection *)connection之後工作,我的意思是,我應該從服務器成功響應,然後執行推動操作,但我無法弄清楚該怎麼做。感謝任何幫助。

回答

2

你可能想考慮允許ViewController B加載它自己的細節數據,或許傳遞一個ID並讓它自己調用。加載數據時,您可以顯示進度HUD。

如果你想傳遞一個標識符,你可以用自定義的初始化函數這樣做:

- (id)initWithEvent: (NSString *) identifier 
{ 
    self = [super init]; 
    if (self) { 
     // Custom initialization 
     theIdentifier = identifier;     
    } 
     return self; 
} 
相關問題