2012-10-31 15 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; 

感谢您的时间。 :)

相关问题