这是我的第一个问题,所以请放心!
我有一个iOS应用程序,它有5个标签栏,每个标签栏都包含一个导航控制器。似乎无论我在哪里调用presentViewController:动画:完成,我从过渡中得不到动画,呈现的视图控制器只出现在屏幕上!
我的UIImagePickerController也会发生这种情况。没有呈现动画,但是当我解雇它时它会动画起来!
以下是从代码生成的标签栏按钮发送的代码示例,其操作连接到一个简单地执行此操作的方法。
UserRegistrationViewController *userRegistration = [[UserRegistrationViewController alloc] init];
userRegistration.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:userRegistration animated:YES completion:nil];
如果有人对我可以尝试的事情有任何想法,我将非常感激!
答案 0 :(得分:2)
我假设您希望在标签栏按下之间的过渡期间发生动画。如果是这样,您几乎无法控制该动画,因为标签栏会为您管理过渡。看起来你正试图在标签按下之间实现交叉淡入淡出。虽然你真的无法淡出旧的视图控制器,但是当它出现时你可以轻松地让新的视图控制器淡入:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//Set the view to transparent before it appears.
[self.view setAlpha:0.0f];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//Make the view fade in. Set Opaque at the end for a performance boost.
[UIView animateWithDuration:0.5f
animations:^{
[self.view setAlpha:1.0f];
[self.view setOpaque:YES];
}];
}
请注意,标签栏已经显示视图控制器。您不应该尝试自己呈现视图控制器。让标签栏为您管理;这就是它的用途。