将 presentViewController 与 UITabbarController 一起使用时如何传递数据

Posted

技术标签:

【中文标题】将 presentViewController 与 UITabbarController 一起使用时如何传递数据【英文标题】:How to passing data when using presentViewController with UITabbarController 【发布时间】:2016-07-24 19:30:33 【问题描述】:

我是ios的新手。我尝试使用 UITabbarController,但当我尝试将数据从 ViewController(此 ViewController 不是 Tabbar 中的项目)传递到另一个 ViewController 时,我遇到了一些问题,该 ViewController 是 Tabbar 中的项目。在这种情况下,当我单击按钮登录时,我希望出现“欢迎光临购物”,登录表单中的用户名将传递到“欢迎光临购物”的标签中。

我使用下面的代码使“欢迎购物”控制器出现:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UITabBarController *tabbarController= [storyboard instantiateViewControllerWithIdentifier: @"tabbarID"];
    [self presentViewController: tabbarController animated: YES completion: nil];

那么我有什么想法可以将用户名(在 LoginController 中)传递给标签(WelcomeToShopController)吗?

【问题讨论】:

【参考方案1】:

我研究后解决了我的问题:)。因为我使用了 tabbar 和 navigationController,所以我应该实例化 tabbar -> NavigationController -> ViewController。就我而言,下面的这段代码可以完美运行。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UITabBarController *tabbarController= [storyboard instantiateViewControllerWithIdentifier: @"tabbarID"];
    UINavigationController *nav = (UINavigationController *)[tabbarController.viewControllers firstObject];
    HistoryOrderingController *historyOderingVC = (HistoryOrderingController *)[[nav viewControllers] firstObject];
    historyOderingVC.user = self.user;
    [self presentViewController: tabbarController animated: YES completion: nil];

【讨论】:

以上是关于将 presentViewController 与 UITabbarController 一起使用时如何传递数据的主要内容,如果未能解决你的问题,请参考以下文章

PresentViewController 与 ModalPresentationStyle “UIModalPresentationFormSheet” IOS 8

presentViewController 的动画属性

容器视图中的presentViewController

带有自定义过渡的 presentViewController

如何使用委托给 self 调用 presentViewController?

PresentViewController:动画不显示在 iPad 上