- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个导航 Controller ,其中插入了 4 个 VC。我有一个单例类,其委托(delegate)属性设置为位于堆栈顶部的 VC。我在每个 VC 的 dealloc 方法中将此委托(delegate)设置为 nil。我在 rootVC 的 viewdidappear 方法中设置委托(delegate)。
当我从第 4 个 VC 弹回根 VC 时,调用 dealloc 方法(堆栈中所有 VC 的)和 viewdidappear 方法的顺序如下:
"FirstVC dealloc called"
"SecondVC dealloc called"
"viewdidappear of root VC is called"
"ThirdVC dealloc called"
现在,我面临的问题是委托(delegate)被设置为 nil,即使我在根 VC 的 viewdidappear 方法中将它设置为 self(这也可以从控制流中看到)。我怎样才能防止这种情况?我希望在真正释放所有 VC 后调用 viewdidappear 方法。
谢谢,奥拜德
最佳答案
由于您无法预测方法调用的顺序,除非 Apple 发布了它们的某些保证,也许您可以通过创建如下方法来对单例进行编程以使其具有防御性:
- (void)removeDelegate:(UIViewController *)oldDelegate;
如果委托(delegate)与指定的旧委托(delegate)匹配,则将其设置为零。
关于iphone - poptorootviewcontroller 不按顺序调用 Root View Controller 的 dealloc 方法和 viewdidappear 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845621/
我是一个相对较新的 iPhone 应用程序开发人员,所以我的知识有点粗略,所以如果这是一个微不足道的问题,请原谅我。 我有一个导航应用程序,它通过在navigationController对象上调用p
我有一个基于导航的应用程序,我可以在一些 View Controller 中进行导航。此时我有 2 个 View Controller 。在第二个 View Controller 中,我有一个条件,如
我有使用 Storyboard的导航 Controller 应用程序的标签栏, 我的目的是在 tab3 中按下一个按钮,在后台我希望 tab1 到“popToRootViewController” t
我有一个应用程序,可以在执行任务之前提示用户输入各种信息。用户输入所有信息后,我执行 UIApplication.shared.openUrl(url: url) ,然后执行 self.navigat
我不确定这是否是好的做法,所以如果不是,请随时给我打电话。我有一个 UI 测试,旨在测试我的应用程序的欢迎屏幕。因此,在测试中,我想添加一个 if 语句,以确保在测试代码运行之前我位于正确的 View
场景 我的项目结构是 A---B---C---D---E A是 Root View ,我在E中 成功完成一些交易后,我正在做 - (void) successfulToDoTransaction: {
我有一个执行 poptorootviewcontroller 的方法“test”。我想在 poptorootviewcontroller 的动画之前放一些延迟。这是我的代码: -(void)test{
我有带 5 个 TabBarItem 的 TabBarViewController 当我站在 TabBarItem[0] 时,我通过导航推送到 ViewController。从那个 ViewContr
我看到过关于此错误的类似问题。但我不确定它在这种情况下如何应用 这是错误 Receiver type for instance message is a forward declaration 这是我
上下文: 我同时使用 TabViewController 和 NavigationController。这两个选项卡是 RECENT 和 POPULAR,它们显示帖子列表。想象一下,您在 RECENT
假设我有一个堆栈 3 个 View Controller 深。如果我在 navigationController 上调用 popToRootViewController,顶部 View Control
在我的库中,我有一个加载 View ,它会弹出到输入 View 。当用户完成输入 View 时,它应该返回加载 View 再次执行一些魔术,完成后它应该显示第三个 View 。 现在,从可用性 Vie
我有一个 viewController 层次结构(在 Storyboard中创建),具有以下允许的方向: +---------------+ +------------------+
我有一个带有 4 个 View /选项卡的 UITabBarController。每个 View 都是一个 UINavigationController。 如何在其中一个 UINavigationCo
我正在尝试为弹出到 Root View Controller 创建自定义动画。我想创建一个动画,当前用户向下滑动并显示下面的新 View Controller ,以及我将添加的其他一些东西。我的大问题
我将 UINavigationController 子类化,并通过它的 didShow 委托(delegate)(每当将新 View Controller 插入堆栈时调用该委托(delegate)),
我正在尝试编写一段代码,它将弹出到 Root View Controller ,然后将推送另一个 View Controller ,到目前为止我有这个: self.navigationControll
我有一个基于导航的应用程序,我在其中推送多个 viewController(通常从右到左)以创建一个事件。当用户到达最后一个屏幕并创建事件时,我调用... [self.navigationContro
我正在构建一个简单的应用程序。带有 TableView 和嵌入式导航 Controller 的 1 View Controller 中的项目列表。当您选择一行时,它会将您带到详细信息屏幕(没问题)。
所以我有一个基本的应用程序,下面是它的工作原理。我有一个名为 A 的 Root View Controller 和一个名为 B 的 TableView Controller 。当用户在 B 中选择一行
我是一名优秀的程序员,十分优秀!