2010-09-01 73 views
3

我正在试验为iPad引入的splitViewController,并且卡在了一个点上。我在splitViewController的详细视图上有一个按钮,点击模式视图打开。现在我想在模态视图消失时更改详细视图上UI控件的位置。viewWillAppear没有得到调用detailView of UISplitViewController

这样做的一个非常明显的方法是捕获detailView的ViewWillAppear方法中的视图转换。但在这种情况下不会被调用。我记得在tabBarController中面临同样的问题,其中[tabBarController viewWillAppear:animated]需要在调用每个标签项的viewWillAppear视图之前设置。我也试着用splitViewController来做这件事,但这似乎并不奏效。

任何想法?

回答

2

如果由于模态视图中发生的操作而需要定位,则应使用显式委托回调。这将允许您清楚地指定控制流程和您的应用程序的结果行为。

然后,您应该定义一个协议,该协议具有携带有关所采取措施的相关信息的特定方法。当模式中发生动作时,在委托上执行协议方法,它可以对该事件做出反应(对于您来说,它似乎是按钮定位的重新布局)。

要了解足够抽象以处理泛型模态行为的方法,请参阅UIAlertViewDelegate协议。在这里,当用户决定不采取任何行动时,代表将收到alertViewCancel:消息,或者当他们选择提供给他们的选项之一时,会收到alertView:didDismissWithButtonIndex:

这是如何定义协议的好开始。

如果您需要许多视图控制器来响应在模式中采取的操作,比如Sign In模式,那么更好的机制就是通知。

相关问题