所以.刚刚开始将我的IOS代码转换为IOS7,并遇到了一些问题.
我有一个UINavigationController,它有子ViewControllers,我pushViewController用来显示下一个视图.要创建带有一组图像的视差动画,如果自定义UINavigationController动画一组UIImageViews和我的孩子ViewControllers都具有self.backgroundColor = [UIColor clearColor]透明度.
由于iOS7,UINavController动画它的子vc的方式,通过部分移动当前视图控制器更新,并在顶部推动新的视图控制器,我的视差动画看起来很废话.我看到之前的VC移动了一点然后消失了.有什么办法可以恢复以前的UINavigationControllerpushViewController动画吗?我似乎无法在代码中找到它.
WelcomeLoginViewController* welcomeLoginViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"WelcomeLogin"];
[self.navigationController pushViewController:welcomeLoginViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
甚至尝试使用:
[UIView animateWithDuration:0.75
animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[self.navigationController pushViewController:welcomeLoginViewController animated:NO];
[UIView setAnimationTransition:<specific_animation_form> forView:self.navigationController.view cache:NO];
}];
Run Code Online (Sandbox Code Playgroud)
有没有人有任何线索?
animation objective-c uinavigationcontroller pushviewcontroller ios7
最近我更新了我的xcode项目以使用iOS 7,但我遇到了一个大问题.因为我的整个应用程序只有一个背景图像(UIImageView添加到关键窗口)并且所有视图都是透明的,所以我在推UIViewController时遇到问题,因为推送的视图控制器与之前的视图重叠(你可以在这里看到它:http:/ /grab.by/qp0k).我可以预测这是因为在iOS 7中推送转换已经改变,因为现在它滑动了半个屏幕.也许有人知道如何解决这个问题?
这就是我设置关键窗口的方法
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIImageView *background = [[UIImageView alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
background.image = [UIImage imageNamed:@"background.png"];
UINavigationController *navi = [[UINavigationController alloc]initWithRootViewController:self.viewController];
self.window.rootViewContro??ller = navi;
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
之后当用户点击"开始锻炼"按钮时,我会一如既往地推送我的下一个视图:
workoutView *w = [[workoutView alloc]initWithNibName:@"workoutView" bundle:nil];
[self.navigationController pushViewController:w animated:YES];
Run Code Online (Sandbox Code Playgroud)