2012-10-31 16 views
0

我正在使用故事板創建我的應用程序。它首先運行,它會顯示所有的數據。之後,如果我點擊+,我會添加一個新的數據。如果我點擊該行,我將移動到將顯示數據的頁面。如何使用UINavigation Controller傳遞對象並加載到其他頁面?

我使用這個,但仍然有錯誤。這是我的代碼。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
    if ([segue.identifier isEqualToString:@"AddUser"]) 
    { 
     UINavigationController *navigationController = segue.destinationViewController; 
     UserDetailViewController *userDetailViewController = [[navigationController viewControllers] objectAtIndex:0]; 
     userDetailViewController.delegate = self; 
    } 
    else if ([segue.identifier isEqualToString:@"UpdateUser"]) 
    { 
     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     UserNHG *usernhg = [ListUserNHG objectAtIndex:indexPath.row]; 

     UINavigationController *navigationController = [segue.destinationViewController setUsernhg:usernhg]; // i got my error here 
     UserDetailViewController *userDetailViewController = [[navigationController viewControllers] objectAtIndex:0]; 
     userDetailViewController.delegate = self; 
    } 
} 

這裏是我的錯誤信息

Initializing 'UINavigationController *__strong' with an expression of incompatible type 'void'; 

,如果我只能用這個,我不會得到錯誤。

UINavigationController *navigationController = [segue destinationViewController]; 

但如果我使用該代碼,我該如何傳遞我的對象? 任何想法如何解決這個問題?

+0

UINavigationController是窗口的rootViewController –

+0

@Pince - 謝謝你的答案。但你能解釋更多嗎?謝謝。 –

回答

0

使用這樣的:

AppDelegate *objAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
UINavigationController *navigationController = (UINavigationController *)objAppDelegate.window.rootViewController; 
UserDetailViewController *userDetailViewController = (UserDetailViewController *)[[navigationController viewControllers] objectAtIndex:0]; //must know correctly index of UserDetailViewController 

編輯:如何pass object

Create UserNHG *selectedUser property in UserDetailViewController. 

現在

userDetailViewController.selectedUser = usernhg; //object passed 
+0

感謝您的答案..但我如何通過我的usernhg對象? –

0

我只是覺得參照this link

這裏是我的代碼:

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
    UserNHG *usernhg = [ListUserNHG objectAtIndex:indexPath.row]; 

UINavigationController *navigationController = [segue destinationViewController]; 
    TestViewController *testViewController = [[navigationController viewControllers] objectAtIndex:0]; 
    testViewController.usernhg = usernhg; 
testViewController.delegate = self; 

感謝您的時間。 :)

相關問題