0

ストーリーボードを使用してアプリを作成しています。最初に実行すると、すべてのデータが表示されます。その後、+ をクリックすると、新しいデータが追加されます。行をクリックすると、データを表示するページに移動します。

私はこれを使用していますが、それでもエラーが発生します。これが私のコードです。

    -(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];

しかし、そのコードを使用している場合、どうすればオブジェクトを渡すことができますか? これを解決する方法はありますか?

4

2 に答える 2

0

このリンクを参照して見つけました

ここに私のコードがあります:

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;

御時間ありがとうございます。:)

于 2012-10-31T15:09:15.800 に答える
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
于 2012-10-31T12:21:15.747 に答える