【发布时间】:2012-06-07 04:11:56
【问题描述】:
我看过几篇关于 ViewWillAppear 和 ViewDidAppear 在某些情况下不会触发的文章,但我仍然想知道这种行为背后的想法是什么,以及在我的具体情况下如何解决它。
-
window有一个视图,由默认的UIVieController处理并包含一个按钮。 - 单击按钮以模态方式显示另一个视图控制器 (VC_MAIN)。
- 根据设置,模态显示的视图控制器 (VC_MAIN) 将呈现视图 A 或视图 B。
- 视图 A 和 B 由不同的视图控制器(VC_A 和 VC_B)处理。
- 在 VC_A 或 VC_B 中未调用任何 ViewWill* 或 ViewDid* 方法。
- 我可以通过在 VC_MAIN 中相应的 ViewDid* 和 ViewWill* 方法中手动调用它们来解决它。但是,如果 VC_MAIN 决定从 VC_A 切换到 VC_B,这将无济于事。 VC_MAIN's View* 方法不会被再次调用,VC_A's 或 VC_B's 也不会。
我当然可以在从 A 切换到 B 时关闭 VC_MAIN,但我不想这样做。我想为切换设置动画,而不仅仅是打开另一个模式视图。
为什么不调用这些方法呢?它真的超出了我的范围!如果您查看 UISplitViewController:它包含两个子控制器,可以显示其他控制器。他们基本上做的和我想做的一样。 Apple 是否在代码中添加了杂牌?
【问题讨论】:
-
ViewWillAppear中的大写 V 是不是拼写错误?该方法名为viewWillAppear:。与所有方法名称一样,它以小写字母开头。 -
啊,对不起。我正在使用 MonoTouch。我添加了一个标签。但问题在 MT 和 ObjC 中是相同的。
标签: objective-c cocoa-touch ios4 xamarin.ios