我正在开发基于UITabBarController
的应用。该应用程序具有"用户身份验证/限制"特定标签可能在任何时间点受限制/不受限制(通过管理员)。
受限制时,"身份验证"视图显示在选项卡的当前视图中。这只是通过故事板segue方式完成,并以" Kind" "现在模态"和"演示" "过度的内容"
只要用户在"身份验证"之前没有导航到不同的标签,一切都会正常工作。在授予授权后呈现并返回视图,在这种情况下,呈现视图为空白
在目前的表单中,我使用身份验证视图viewDidLoad
来检查用户是否受到限制,如果他们不是,我就会触发返回segue到父视图,这意味着如果选项卡被限制但变得不受限制,则可以自动关闭身份验证视图
所以,事件的顺序
我在如何解决这个问题上输了。
我已尝试过(在父视图的展开segue方法中)
view.setNeedsLayout()
和view.setNeedsDisplay()
以响应来自身份验证视图的segue事件navigationController?.popToViewController(self, animated: false)
table.reloadData()
(是的,父视图只是UITableViewController
)view
,但可能做错了我在试图让视图控制器执行完全刷新/重新加载时智慧结束
我已经能够设计" a"解决方案,基本上在身份验证视图中调用viewWillDisappear
时,我执行特殊的"未经授权的解雇" segue,其目的是告诉父视图认证视图已被解除,但未进行身份验证,让它知道它不应该尝试更新自身,但也不要尝试重新进行身份验证。
这允许父级viewDidAppear
方法在其可见后再次处理身份验证过程。
它对我有用,但我愿意接受更多想法