ios - UIView 容器在添加 subview Controller 后消失

标签 ios swift

我有一个标签栏 Controller ,它有两个标签。一个是常规的 UIViewController,另一个是导航 Controller 。导航 Controller ,我可以毫无问题地使用自定义 inputContainerView 在其上推送另一个 View Controller 。但是,当我将 navigationViewController(来自 mapbox 的名称)作为 subview 放在第一个选项卡上时,自定义 inputContainerView 不再显示。即使我从第一个选项卡中删除了 subview Controller 。

将子项添加到选项卡 1

...
    addChild(navigationViewController)
    navigationViewController.view.frame = view.bounds
    view.addSubview(navigationViewController.view)
    navigationViewController.didMove(toParent: self)

}

func navigationViewControllerDidDismiss(_ navigationViewController: NavigationViewController, byCanceling canceled: Bool) {
    navigationViewController.willMove(toParent: nil)
    navigationViewController.view.removeFromSuperview()
    navigationViewController.removeFromParent()
}

标签 2
override var inputAccessoryView: UIView? {
    get { return inputContainerView }
}

override var canBecomeFirstResponder: Bool { return true }

我试图实现的顺序是将一个 subview Controller 添加到第一个选项卡(从 mapbox 命名的导航 View Controller )单击第二个选项卡并在 inputContainerView 显示的情况下推送一个 ui View Controller 。在我在第一个选项卡上添加 subview 之前它显示得很好,但在那之后消失了

最佳答案

这就是文档所说的:

此方法在当前 View Controller 和 childController 参数中的对象之间创建父子关系。当将 subview Controller 的 View 嵌入到当前 View Controller 的内容中时,这种关系是必要的。 If the new child view controller is already the child of a container view controller, it is removed from that container before being added.
检查突出显示的部分。

关于ios - UIView 容器在添加 subview Controller 后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55603081/

相关文章:

ios - UIColor颜色与图像在IOS 7下不起作用

ios - 如何在xcode中链接框架的源代码

iOS 研究工具包调查 (swift)

swift - Swift/Objective-C ASN1编码公钥

ios - 这是我应该创建类(class)的时候吗?

ios - 如何检查 UITableViewCell 标签是否被截断?

ios - Swift 2 - Xcode 7.0 无法使用不受信任的 SSL 证书访问 HTTPS 站点

iphone - 在 UIPageViewController 中禁用/启用滚动

iphone - Objective-C : getting error on console while trying to display app on ipad device?

swift - 如何存储通用闭包?