如何更换模态视图控制器?

时间:2010-03-29 06:04:45

标签: iphone uiviewcontroller modal-dialog addressbook fade

我正在使用模态视图控制器来允许用户选择地址簿条目和电子邮件地址。 ABPeoplePickerNavigationController对象通过presentModalViewController:animated显示:

[self presentModalViewController:picker animated:YES];

我想要做的是保持模态对话框,但是当用户选择电子邮件地址时,它应该交叉渐变到显示消息编写窗口的不同控制器。

我在peoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:尝试了各种方法来解除选择器并将我的自定义合成控制器设置为模态视图。我可以通过多种方式实现这一点,但它永远不会从拾取器平滑地淡化到合成控制器 - 除非我使合成控制器成为拾取器的模态对话框,在这种情况下,当我关闭合成器时拾取器会重新出现控制器。我也不想那样。

必须有一些方法可以平滑地替换一个控制器及其视图与另一个控制器及其视图,所有这些都在模态对话框的上下文中,最好是交叉淡入淡出。建议非常感谢。

1 个答案:

答案 0 :(得分:1)

将合成控制器添加为选择器的子视图。将其alpha设置为0,使其透明。然后使用动画块逐渐将其alpha动画设置为完整:

// Initially set alpha to 0    
[myCompositionView setAlpha:0];

// Later when you want to show the view, animate the alpha to 1.0
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[myCompositionView setAlpha:1.0];
[UIView commitAnimations];