在 indexpath.item 以编程方式呈现 UIViewController(嵌入在 UITabBarController 中)

Posted

技术标签:

【中文标题】在 indexpath.item 以编程方式呈现 UIViewController(嵌入在 UITabBarController 中)【英文标题】:Present programmatically a UIViewController (embed in an UITabBarController) at indexpath.item 【发布时间】:2019-05-17 17:19:27 【问题描述】:

我需要以编程方式呈现一个特定的 ViewController,该 ViewController 包含取决于其行/项目(来自 UICollectionView)的信息。 但是这个 ViewController 嵌入在 TabBarController 中,我看不到如何获取数组中包含的信息。

我习惯于像这样直接在 UITableViewRowAction 中呈现它:

    let MyEditingController = MySpecificController()

    MyEditingController.delegate = self

    MyEditingController.Object = arrayOfObjects[indexPath.item]

    let navController = CustomNavigationController(rootViewController: MyEditingController)

    present(navController, animated: true, completion: nil)

这将正确呈现 MySpecificController,但是当它需要嵌入 UITabBarController 时如何呈现此控制器:MySpecificController 应该是此 TabBar 显示的 4 个屏幕的第一项。

有什么想法/建议吗?

感谢您的帮助!

【问题讨论】:

我不太明白你在问什么。您是否尝试以编程方式将新控制器添加到 TabBar(在其中添加新图标),或者您正在寻找 UINavigationController(屏幕顶部的后退箭头)?如果你能画出一些更好的东西。 一方面,我有一个 collectionView :它的每个项目/行都有一个“更多”按钮,我可以处理它来呈现信息。另一方面:一个有 4 个屏幕的 tapBar,第一个屏幕显示我想要显示的信息。 我通常可以使用 navcontroller 但从 UIviewcontroller 到其他 UIViewController,而不是从 UIViewController 到 UITabBarController @AndreaGottardo,可能是这样的:imgur.com/a/lnVD6RM @Creanomy 您可以提供UITabBarController。据我了解,您需要提供来自UITabBarController 的特定UIViewController,对吧? 【参考方案1】:

忘记我的问题.... 我犯了一个“菜鸟”错误,答案就在我的眼皮底下:我重构了构建 TabBar 的方式,因为我可以接触到我的每个 VC,当然,我“只是”改变了我的presentedViewController .... 现在,它完美地工作 该死!对那些试图帮助我的人感到抱歉。

【讨论】:

以上是关于在 indexpath.item 以编程方式呈现 UIViewController(嵌入在 UITabBarController 中)的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在 UITabBarController 和 UINavigationController 中呈现视图

在 Magnolia CMS 中以编程方式呈现模板区域

关闭以编程方式呈现在嵌套在 NavigationController 中的 ViewController 中的 ViewController 崩溃,但并非每次

Drupal 以编程方式呈现登录表单

在swift3中按下按钮时如何以编程方式执行segue或呈现视图

初学者:如何以编程方式从另一个视图呈现 UITableView