- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我了解 dismissViewControllerAnimated:completion:
和 popViewControllerAnimated:
之间的区别,如 on Stack Overflow 所述在这里:
-dismissViewControllerAnimated:completion:
method is used to dismiss an UIViewController, which was presented by the method:-presentViewController:animated:completion:
.
-popViewControllerAnimated:
method of UINavigationController is used to pop a controller shown by-pushViewController:animated
method of UINavigationController.
我最近在我的应用程序中发现了一个错误,我在其中使用 [self dismissViewControllerAnimated:completion:]
关闭导航嵌入式应用程序中通过推送呈现的 VC。当我应该吃披萨时,我炸了。我没有发现错误,因为一切正常,我的 VC 已按预期解除分配。
我的问题:将这两种方法混合使用会产生什么后果?
最佳答案
-presentViewController:animated:completion:
和 -pushViewController:animated:
意思不同。前者说“呈现这个另一个 View Controller 以取代你自己”。后者表示“在您内部显示这个其他 View Controller ,作为您控制的列表的一部分”。
所以这是关于谁被认为负责过渡后的显示。在前一种情况下,导航 Controller 交出控制权。在后者中,它保留控制权。
前一个功能由 UIViewController
提供。后者特定于 UINavigationController
。
因为两个 Action 截然不同,所以相反的 Action 是分开的。导航 Controller 可以捕获 dismissViewController:...
并检查命名 Controller 的呈现方式,分支到父类(super class)或 pop...
但任务的合并将是从设计和维护的角度来看没有吸引力。
由于导航 Controller 不 promise 将一件事映射到另一件事,并且 UIViewController
不 promise 如果您传递的 Controller 之前没有出现任何特定行为,我认为您问题的字面答案是:将这两件事混合在一起的结果是未定义的行为。
关于ios - 错误编程的后果 : dismissViewController vs popViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668328/
是否有与 UINavigationController 的 popViewController 等效的 TTNavigator? (或者关闭我找不到的 View Controller 的替代方法?)
我遇到了一个奇怪的故障,当调用 popViewControllerAnimated: 时, View Controller 上的正常标题 View 突然向左对齐。有人似乎遇到过类似的问题吗? 最佳答案
我在 popViewController 方面遇到问题。 我使用pushViewController转到OrdersFormViewController OrdersFormViewControlle
导航 Controller 中的 Popviewcontroller 只弹出当前页面并将我们发送到上一页。有没有办法弹出两页并返回到上一页之前的页面(后两页),或者我必须将其推送到该页面。谢谢 最佳答
我有两个 UIViewController,“A”和“B”,其中“A”覆盖 shouldAutorotateToInterfaceOrientation 以针对 UIInterfaceOrientat
我想从 View 1 的类方法中返回我的 Root View 。在 View 1 的实例方法中,我只想说 [self.navigationController popViewControllerAni
我可以在不使用这样的代码的情况下从导航 Controller 堆栈中删除 View Controller 吗 [mynavigationController popViewControllerAnim
我正在制作一个应用程序,它从解析中检索图像并将其显示到 Collection View 中。当用户点击图像时,图像会详细显示。我有一个用户可以更改的文本字段。当用户更改某些内容时,他们会点击保存按钮并
我在我的应用程序中使用 UISegue 在我的应用程序中的 View Controller 之间自动转换。我称它们为 A 和 B。 它按预期工作,但是当我想从 B 返回 A 时,我尝试调用[self.
我正在使用 ARC。我有 UINavigationController 来推送和弹出。碰巧其中一个 ViewController 是一个巨大的 ScrollView ,可容纳 100MB。在 popV
由于我试图拒绝但没有成功的奇怪请求,我不得不覆盖导航栏的后退按钮。 我制作了一个自定义的 UINavigationController 子类并破解了- (BOOL)navigationBar:(UIN
我有两个 View Controller 。第一个 View Controller 没有状态栏。 class ViewController: UIViewController { overri
我一直在努力使用 UINavigationalController 在 View 之间切换。我已经多次使用这个系统没有问题,但在我的新应用程序中它不能正常工作。 这是问题: 当我推送一个新的 View
因此,当发生错误时,我尝试将 View Controller 从堆栈中弹出,但似乎一次性弹出太多内容。顶部的导航栏失去了标题和按钮,但旧的 TableView 数据仍然可见。我不知道发生了什么....
我完全被难住了,情况是这样的: 我的应用程序使用核心位置框架来获取用户的当前位置,然后 ping 我的服务器 TrailBehind附近有趣的地方并将它们显示为列表。没问题。 为了节省电池,我在从服务
当我推送或弹出 UIViewController 时,动画需要多长时间才能完成幻灯片动画。我在主窗口上有一个 View ,当推送或弹出 ViewController 时,我需要同步滑动该 View 。
我有一个 UINavigationController ,上面有一系列 UIViewControllers 。在某些情况下,我想正好弹回两个级别。我以为我可以通过连续两次调用 popViewContr
我创建了一个 UINavigationController (作为初始屏幕)并将它们与我的 UITableViewController 连接起来(作为根)。 接下来,我创建另一个 UINavigati
我在 ARC 下的内存管理有一些问题。当我在我的应用程序中弹出 View Controller 时,它们都不会释放内存,有时不会调用 View Controller 的 dealloc。即使调用了 d
当使用 UINavigationController 创建的后退按钮弹出 viewController 时,我需要调用我已有的方法来保存数据。 有没有办法获得委托(delegate)回调或我在文档中没
我是一名优秀的程序员,十分优秀!