2013-08-20 159 views
1

我在ScanViewController類中有NSURL對象,並將它傳遞給ListViewController類。如何將NSURL對象從一個視圖控制器傳遞給另一個視圖控制器

NSURL *url = [NSURL URLWithString:@"http:// some url"]; 

我使用的廈門國際銀行在我的項目,找不到

[self.storyboard instantiateViewControllerWithIdentifier:] 

[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
{ 
    if(error || !data) 
    { 
     NSLog(@"JSON NOT posted"); 
    } 
    else 
    { 
     NSLog(@"JSON data posted!"); 
     id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:Nil]; 

     if([jsonObject respondsToSelector:@selector(objectForKey:)]) 
     { 
      NSDictionary *dictionaryForUserID = [jsonObject valueForKey:@"ProjID"]; 
      NSLog(@" Project Id = %@", dictionaryForUserID); 

      NSURL *urlToDisplayInListView = [NSURL URLWithString:[NSString stringWithFormat:@"http://some url/%@", dictionaryForUserID]]; **//Pass this object to other viewcontroller** 

     } 
    } 
}]; 

回答

6

替代我假設你從一個VC進行SEGUE到另一個。如果是這樣,你可以在你prepareForSegue:sender:方法做到這一點:

if ([segue.identifier isEqualToString:@"segueToListViewController"]) { 
    [(ListViewController *)segue.destinationViewController setURL:[NSURL URLWithString:@"http:// some url"]]; 
} 

您的目的地VC來處理URL申報財產,您將需要一個訪問方法來設置該屬性。

編輯

由於danypata建議,如果你不使用塞格斯,請嘗試以下

ListViewController *listViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ListViewControllerIdentifier"]; 
[listViewController setURL:[NSURL URLWithString:@"http:// some url"]]; 
[self presentViewController:listViewController animated:YES completion:nil]; 
+1

我認爲,如此以來,他用'instantiateViewControllerWithIdentifier不使用'prepareForSegue' ',或者他用錯了:))。無論如何,你應該編輯你的答案,併爲那些不使用segues的人添加一個解決方案(他們使用'push'方法)。不要懶惰:))。無論如何,這是使用segues的人的正確答案。 – danypata

+0

我不使用segue ..該方法有(UIStoryboardSegue *),我不使用故事板..如何傳遞xib的情況下的對象? –

+0

@DeepakThakur對不起,我假設你正在使用故事板。無論如何,你需要做的是實例化你的VC,設置URL屬性並呈現VC。如果你想要一個類似push的動作,你將不得不將你的實例化的VC添加到導航控制器中。 – amb

相關問題