- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有人有关于为什么不应直接调用诸如“viewWillDisappear”之类的方法的官方引用资料?有几篇关于该主题的现有帖子,但没有官方链接,只有意见。
这样做是没有意义的,因为它是从 View 的生命周期管理中调用“循环外”的方法。当然,它们可以被覆盖,并且在许多情况下被覆盖。
问题是我遇到的一些代码,其中“viewWillDisappear”是从某种方法调用的。真正需要调用的是“viewWillDisappear”方法的内容。
例子:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// The following two methods are the ones that need to be called below
[self someMethod];
[self anotherMethod];
}
- (void)delegateMethod
{
[self viewWillDisappear:YES];
// Do some other work
// View is moved off-screen, not deallocated, and therefore, does not "disappear"
}
直觉上,直接调用任何 View 层次结构方法(例如 viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear)似乎是错误的。如果您告诉“self”和“super” View viewWillDisappear 它可能会在框架中执行某些操作,这可能会在以后导致问题。我认为这些方法应该只由框架调用。但是,这是我的意见,并非官方消息来源。头文件似乎没有提供任何相关信息。
感谢任何帮助。
最佳答案
没有技术原因你不能。
但你不应该这样做。
这是糟糕的编码习惯,您可能会让读者感到困惑,或者更糟的是,让他/她不信任您。
良好的编码习惯如下:
- (void)delegateMethod
{
[self doCommonWork];
}
- (void)viewWillDisappear:(BOOL)animated
{
[self doCommonWork];
}
- (void)doCommonWork
{
// …
}
关于ios - 可以直接调用viewWillDisappear吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28616159/
我在我的应用程序中使用导航 Controller 。我尝试单击一个按钮(不在导航栏中)的一个 UI viewWillDisappear 未被调用。但我没有使用 navigationController
我在选项卡 View 中有一个表单;我将任何字段的表单标记为已更改,如果表单是脏的(代替“保存”按钮),我想弹出一个带有“保存”/“取消”的 ActionSheet。在用户响应正在处理的 Action
我制作了一个播放器应用。当用户关闭应用程序(进入后台模式)并调用 viewWillDisappear 时,播放器停止播放音频。 我无法在 applicationDidEnterBackground 中
我有一个带有文本字段的 UITableviewController。文本字段包含必填字段。 如果用户没有输入所有字段就离开了屏幕,我想用 alertview 提醒用户。我在 viewwilldisap
我有一个 UIViewController,ViewControllerA,它显示为来自 RootViewController 类的模态视图 Controller 。 ViewControllerA
我的应用程序使用带有 splitviewcontroller 的 Storyboard。在左侧,我有带有选项列表的表格 View 。在右侧,我有一些关于左侧选项的信息。就像在设置应用程序中一样。当用户
我有一个带有两个简单屏幕的应用程序。第一个屏幕始终打开第二个屏幕的相同实例。第二个屏幕有一个文本字段和一个用于手动隐藏键盘的按钮。 viewWillDisappear 上的 resignFirstRe
我有一个 iOS 应用程序,它使用远程服务器上托管的数据库。 在 ViewWillDisappear 函数内执行数据库 INSERT 是否可能或只是不好的做法? 我似乎找不到太多有关 Apple 在该
我想在用户点击后退按钮返回到我的 Root View Controller 时执行动画。动画将简单地突出显示用户在详细 View Controller 中所做的更改。 我试过了。动画本身可以工作(对于
我是 Swift 的新手,我在我的应用程序中发现了一些奇怪的崩溃。 Fabric 报告说崩溃发生在 viewWillDisappear() 中。 我有两个 ViewControllers。用户在 A
在 viewWillDisappear 上,我需要更新很多 Core Data 记录,这样做会在我从一个 viewController 移动到另一个(通过 Tab View Controller)时造
所以我的应用程序中有一个 UINavController 并且我试图在用户按下后退按钮时执行一个方法。我到处搜索,只能找到断章取义的零碎内容。 有没有一种方法可以实现某种检查,在用户按下后退按钮关闭当
我需要检查 viewWillDisappear: 是否被调用,因为我将另一个 UIViewController 呈现为模态。有谁知道这是否可能? 更新 我想知道为什么要调用它。例如,如果它被弹出或者另
我有以下场景: 在 vcA 中(当用户点击 UI 中的按钮时): 使用 NIB 文件实例化 vcB -(当用户点击 UI 中的按钮时) 在 vcB 中初始化一个 iVar 使用 presentModa
是否有 viewWillDisappear 等同于 CCScenes ? 就像 onExit 等价于 viewDidDisappear 或 onEnter 等价于 viewDidAppear . 最佳
当我正在搜索然后切换 UItab 时,不会调用 ViewWillDisappear。知道为什么当我过滤结果显示和切换选项卡时 ViewWillDisappear 没有被调用吗? func update
这是之前 Unresolved 帖子的后续内容。我在 TableView 中有一个导航 Controller 、一个 TableView Controller 和一个搜索栏。所有这些都内置在 Stor
这是日志输出 2013-03-16 14:02:59.301 Echo[65406:4503] child viewWillDisappear start 2013-03-16 14:02:59.30
我有一个简单的导航层次结构: Controller 1 > Controller 2 > Controller 3 每个 Controller 都包含对其子级和父级的引用(@property(非原子,
我有一个包含 UIWebView 的 View ,它正在加载谷歌地图(所以有很多 JavaScript 等)。我遇到的问题是,如果用户在 Web View 完成加载之前点击导航栏上的“后退”按钮,我不
我是一名优秀的程序员,十分优秀!