iPad SplitViewController UI - 复制Apple Mail App

时间:2010-10-01 15:03:02

标签: iphone user-interface ipad

好的,所以我已经问了一个类似的问题,但我现在面临同样问题的另一个问题!我正在创建一个iPad应用程序并尝试复制Apple Mail App UI。最初我无法更新DetailView,因为我在左侧视图上推送新的导航控制器时没有更新委托,这是使用以下方法解决的:

newRootViewController.myDelegate = self.delegate;

我已经将Apple的MultipleDetailViews代码示例中包含的功能包含在一个以上的详细信息视图中(使用< SubstitutableDetailViewController> ),但这会阻止标签在详细信息视图上进行更新。

我可以通过使用IB删除splitViewController和RootViewController之间的连接然后标签更新工作来解决此问题,尽管此 [显然] 阻止多个详细信息视图功能工作....想法?

1 个答案:

答案 0 :(得分:3)

我还没有看过MutipleDetailViews的例子,但我的猜测是你的代表。

当您在根中选择一个单元格时,它会委托给细节。 在您之前的问题中,您可以通过将新根推送到导航器来更改根;这要求您将新根的委托设置为前一个委托的代理。

您的根视图指向原始详细信息。

如果您更换或更改详细信息,那么从根发送的任何委托都将为nil(如果您销毁旧的详细信息)或者您无法看到它(如果它只是位于新细节后面)

如果要更换细节(销毁旧细节),则需要再次设置root的委托(all / any roots)。

如果您要更改/添加新视图,那么您应该真正关注NSNotificationCenter

示例:

[NSNotificationCenter defaultCenter]
  addObserver:self
     selector:@selector(handleSomethingDidHappen:)
         name:ClassCSomethingDidHappenNotification                
       object:aClassCObject];