instantiateViewControllerWithIdentifier并传递数据

hal*_*y4b 7 storyboard ios segue

Storyboard在我的应用程序中使用,我想将数据从一个视图传递到另一个视图.

而不是使用我正在使用的segues instantiateViewControllerWithIdentifier.在这种情况下,我实例化从我的第一个TableViewControllerNavigationController第二个TableViewController附加,因为我需要在第二个导航TableViewController.现在我想从我的第一个数据传递数据TableviewController,取决于点击哪一行,到第二行TableviewController.在这种情况下newTopViewController将是我,NavigationController但我现在的问题是如何将数据传递firstTableViewControllersecondTableviewController.

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSString *identifier = [NSString stringWithFormat:@"%@Top", [menuArray objectAtIndex:indexPath.row]];


        UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier];




    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mat*_*uch 15

如果实例化navigationController,则可以使用该viewControllers属性获取导航控制器的内部viewController.

像这样的东西:

UINavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:identifier];
MBFancyViewController *viewController = navigationController.viewControllers[0];

// setup "inner" view controller
viewController.foo = bar;

[self presentViewController:navigationController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)


Wil*_*con 5

newTopViewController.anyVariableToShow= anyVariableToSend;
Run Code Online (Sandbox Code Playgroud)

我经常在我的一些应用程序上这样做...

//创建新的VC

CookViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"CookVC"];

//Set recipe
[detailViewController setRecipe:recipe];

//Pop over VC (can be pushed with a nav controller)
[self  presentPopupViewController:detailViewController animationType:MJPopupViewAnimationFade];
Run Code Online (Sandbox Code Playgroud)

如果您没有使用导航控制器或segues,那么我认为您需要重新考虑您的应用程序设计.