关闭删除多个视图
Posted
技术标签:
【中文标题】关闭删除多个视图【英文标题】:Dismiss removes multiple views 【发布时间】:2017-02-08 16:16:41 【问题描述】:我在视图控制器中的解除功能方面遇到了一些问题。
让我从头开始。
我登录到我的应用程序并被带到主仪表板页面。 我单击导航按钮打开导航页面,该页面作为模型打开。 在导航页面上,我单击按钮查看我的个人资料。 在我的个人资料页面上,我选择编辑图标以转到编辑个人资料页面。 在编辑个人资料页面上,我选择了一个头像。因此,当我关闭最后一个页面时,我总共打开了 5 个不同的页面,这让我一直回到导航,这实际上是关闭了 3 个页面。有什么我必须做的,它只会关闭最后一个视图控制器吗?
我有一个页面可以选择一个头像,打开方式如下:
let storyBoard: UIStoryboard = UIStoryboard(name: "Profile", bundle: nil)
let viewController = storyBoard.instantiateViewController(withIdentifier: "UserAvatarController") as! UserAvatarController
viewController.modalPresentationStyle = .popover
viewController.avatars = self.avatars
viewController.delegate = self
self.navigationController?.pushViewController(viewController, animated: true)
当我在页面上选择了我的头像时,点击一个按钮并触发:
if (self.selectedImage > -1)
self.delegate?.selectAvatar(imageId: self.selectedImage)
self.dismiss(animated: true, completion: nil)
然后它带我回到导航页面并丢失了编辑个人资料页面中的所有数据。
【问题讨论】:
为什么要把我的问题记下来? 【参考方案1】:我认为您正在使用 pushViewController 打开视图并使用关闭关闭视图。
你应该用 pop 关闭视图。
_ = navigationController?.popViewController(animated: true)
希望这能解决您的问题
【讨论】:
非常感谢 :) 这很有效。我会掌握这一切的,很可能就在苹果再次改变这一切之前,哈哈【参考方案2】:只要navigationController?.popViewController(animated: true)
它将回到之前的视图控制器。
【讨论】:
以上是关于关闭删除多个视图的主要内容,如果未能解决你的问题,请参考以下文章