基本上它执行以下 *** 作:
后面的菜单实际上是一个UIVIEwController.如果我们深入研究源代码,我们将找到以下非常重要的代码:
public init(items: [MediumMenuItem],forVIEwController: UIVIEwController) { self.init() self.items = items height = screenHeight - 80 // auto-calculate initial height based on screen size frame = CGRect(x: 0,y: 0,wIDth: screenWIDth,height: height) contentController = forVIEwController menuContenttableVIEw = UItableVIEw(frame: frame) menuContenttableVIEw?.delegate = self menuContenttableVIEw?.dataSource = self menuContenttableVIEw?.showsverticalScrollindicator = false menuContenttableVIEw?.separatorcolor = UIcolor.clearcolor() menuContenttableVIEw?.backgroundcolor = menuBackgroundcolor addSubvIEw(menuContenttableVIEw!) if panGestureEnable { let pan = UIPanGestureRecognizer(target: self,action: #selector(MediumMenu.dIDPan(_:))) contentController?.vIEw.addGestureRecognizer(pan) } let menuController = UIVIEwController() menuController.vIEw = self UIApplication.sharedApplication().delegate?.window??.rootVIEwController = contentController UIApplication.sharedApplication().delegate?.window??.insertSubvIEw(menuController.vIEw,atIndex: 0)}
前几行并不重要,但是最后一行(处理UIApplication.sharedApplication().委托?.window ??是这个库工作的关键,但它们也限制了库.
根据这些行,我们正在制作UIVIEwController,我们希望菜单为rootVIEwController,然后我们将菜单视图添加到0索引的窗口(我猜这是将它放在后面,后面contentController).
图书馆的问题:
只有在初始视图控制器上需要菜单时,该库才有效.从某种意义上说,只有contentController已经是rootVIEwController.它实际上对我来说在我的应用程序中起作用,但是我不能再回到我原来的UIVIEwController,因为它不再在层次结构中了.
我有一个场景,我有一个登录视图控制器,当你成功登录时,我将你转到我想要菜单的UINavigationController.问题的第一个明显标志是我收到投诉“警告:尝试在LoginVIEwController上呈现UINavigationController,其视图不在窗口层次结构中!”显然,它不在窗口层次结构中,因为我正在重新分配rootVIEwController.
我不知道如何解决这个问题.当UIVIEwController我希望菜单不是初始视图控制器时,有没有办法让这个功能工作?
解决方法 简短的回答是:是的.这可以通过将UIVIEwControllerTransitioningDelegate分配给包含List-menu的VIEwController并实现interactionControllerForPresentation()和interactionControllerFordismissal()方法来实现.您不必直接触摸UIWindow.
您可以只更改现有库的这一部分,但从它的外观来看,它只是一个带有奇特过渡的tableVIEw.你可以自己轻松实现这一点.
查看Apple的API Reference在交互式过渡和this tutorial由Ray Wenderlich进行示例.
总结以上是内存溢出为你收集整理的ios – 有没有办法在不弄乱AppDelegate窗口的情况下查看另一个UIViewController后面的UIViewController?全部内容,希望文章能够帮你解决ios – 有没有办法在不弄乱AppDelegate窗口的情况下查看另一个UIViewController后面的UIViewController?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)