我在视图控制器中的解散功能方面遇到了一些问题。
让我从头开始。
所以我总共打开了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)
然后它将我带回导航页面并丢失编辑个人资料页面中的所有数据。
答案 0 :(得分:3)
我认为您正在使用pushViewController打开视图并使用dismiss关闭视图。
你应该用pop来关闭视图。
_ = navigationController?.popViewController(animated: true)
希望这能解决你的问题
答案 1 :(得分:1)
做navigationController?.popViewController(animated: true)
它将返回上一个视图控制器。