为了学习,我正在模拟iphone的笔记。我想在控制器之间进行导航。有两种方法:导航控制器和现有/排除方法。现在我用第二个。
我有三个屏幕:“笔记列表”、“观察笔记”屏幕和“编辑/记录”屏幕。当我转到"existingNote ->编辑existingNote“(从”便笺列表“中发生”礼物“,然后从”观看笔记“屏幕中出现”呈现“),编辑它并保存,执行解散(一次),而我的屏幕变成”观察笔记屏幕“,这是没有问题的。但是当我做笔记(从“笔记列表”屏幕上发生)并保存,执行“解散”,我的屏幕变成“笔记列表”屏幕,但我想看到“观察笔记”屏幕,想看只是做笔记。
我可以在现在/解雇之前做这件事吗?或者我必须使用NavigationController?
发布于 2020-07-13 16:09:05
使用当前/解散的:
在做笔记后,你需要在“笔记列表”上以静默的方式呈现“观察笔记”屏幕。这包括两个步骤:
dismissViewControllerAnimated:completionanimated: false,否则用户将看到屏幕显示动画.使用导航控制器的:(强烈推荐)
navigationController.popToViewController弹出所需的控制器列表/监视/制作/添加备注.navigationController.viewControllers来知道堆栈中有哪些控制器。发布于 2020-07-13 14:22:22
有一种方法可以通过导航控制器或视图控制器(即isBeingPresented )来识别您的导航控制器。
当视图控制器被显示时,isBeingPresented为真,当被推送时为false。
-(ViewWillAppear):(BOOL)动画{
[super viewWillAppear:animated];
if ([self isBeingPresented]) {
// being presented
DispatchQueue.main.async() {
self.dismiss(animated: true, completion: nil)
}
} else if ([self isMovingToParentViewController]) {
DispatchQueue.main.async() {
self.navigationController?.popViewController(animated: true)
}
}}
https://stackoverflow.com/questions/62877532
复制相似问题