【问题标题】:On dismiss a view controller pop me to rootview controller在关闭视图控制器时将我弹出到根视图控制器
【发布时间】:2020-02-28 03:53:14
【问题描述】:

所以我的问题是关闭呈现的视图控制器,导航堆栈为零。我在之前和之后检查了导航堆栈 解雇 层次结构是选项卡控制器 -> SettingController -> ItemListController -> AddItemController 在 addItem 上显示画廊控制器,并在关闭画廊控制器导航堆栈后得到 nil

  let gallery = GalleryController()
    gallery.delegate = self
    present(gallery, animated: true, completion: nil)

而解雇的代码是

controller.dismiss(animated: true, completion: nil)

我的标签代码在哪里

  self.viewControllers = [createLiveOrder(), createFeed(), createHistoryController() ,createSettingController()]

为标签为导航视图控制器的标签创建一个这样的控制器

func createSettingController() -> UIViewController {
        let storyBoard = UIStoryboard(name: StoryBoard.setting.rawValue, bundle: nil)
        let vc = storyBoard.instantiateViewController(withIdentifier: Controller.initController.rawValue)
        vc.tabBarItem = setting
        return vc
    }

但是当我将情节提要设置为正常工作时(我在不同情节提要上使用标签视图控制器并在不同情节提要上设置模块)

【问题讨论】:

  • 尝试使用委托将控制权从 GalleryController 传递给标签栏

标签: ios swift storyboard


【解决方案1】:

我不知道背后的主要原因。但是从在 UITabController 的子类的 viewWillAppear 中分配一个 viewController 数组不起作用。但是当我从 StoryBoard 的 StoryBoard 参考控制器中对 .eg 工作正常时

代码创建问题是

self.viewControllers = [createLiveOrder(), createFeed(), createHistoryController() ,createSettingController()

创建和分配每个控制器的位置是

func createSettingController() -> UIViewController {
    let storyBoard = UIStoryboard(name: StoryBoard.setting.rawValue, bundle: nil)
    let vc = storyBoard.instantiateViewController(withIdentifier: Controller.initController.rawValue)
    vc.tabBarItem = setting
    return vc
}

在情节提要的同一个 Assing 控制器上工作正常

注意:- 故事板代表在子类中分配

【讨论】:

    猜你喜欢
    • 2020-10-21
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多