iPhone:二RootViewControllers之间的渐变过渡(iPhone: Fade tr

2019-07-30 15:40发布

Obj-CMonoTouch C#的答案是罚款。

最初的UIWindow的RootViewController的是一个简单的登录屏幕。

window.RootViewController = loginScreen;

登录后,我的根设定为主要的应用程序

window.RootViewController = theAppScreen;

如何淡入过渡在这种情况下两个RootViewControllers之间?

Answer 1:

我可能会建议不同的方法,将让你动画。 只要进入theAppScreen控制器首先 ,如果你需要用户登录,有它做presentViewController去的loginScreen (你不必动画这一步,如果你想让它看起来像它去直接登录屏幕)。 这样,当你已经成功登录,loginScreen可以只dismissViewControllerAnimated和你有你的动画回到主theAppScreen 。 (当然,如果你想淡入淡出效果,不要忘记设置控制器modalTransitionStyleUIModalTransitionStyleCrossDissolve 。)

如果你在改变你死心塌地rootViewController ,我能想到这样做(我不喜欢它)的唯一方法是做这样的事情:

MainAppViewController *controller = [[MainAppViewController alloc] initWithNibName:@"MainAppViewController" bundle:nil];

// animate the modal presentation

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

[self.window.rootViewController presentViewController:controller 
                                             animated:YES
                                           completion:^{

    // and then get rid of it as a modal

    [controller dismissViewControllerAnimated:NO completion:nil];

    // and set it as your rootview controller

    self.window.rootViewController = controller;
}];

第一种方法似乎更清洁了我。



Answer 2:

这是@Robert瑞安的技术MT代码(虽然我与他的建议,同意theAppScreen可能是“正确的” RootViewController ):

void DissolveIn (UIWindow window, UIViewController newController)
{
  newController.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
  window.RootViewController.PresentViewController (newController, true, () => 
  {
    window.RootViewController.DismissViewController (false, null);
    window.RootViewController = newController;
  });
}


Answer 3:

你可以这样做:

window.RootViewController = theAppScreen;

loginScreen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[theAppScreen presentModalViewController:loginScreen animated:NO];

完成后loginScreen可以关闭本身: [self dismissModalViewControllerAnimated:YES];

第一个动画的NO将使loginScreen出现不theAppScreen它下的任何知名度。 动画= YES上完成将提供横溶解。



文章来源: iPhone: Fade transition between two RootViewControllers