【发布时间】:2012-11-11 15:59:49
【问题描述】:
我正在尝试用动画替换窗口 rootViewController,但它只能部分工作。
我以编程方式创建了一个 UINavigationController -
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"InboxStoryboard" bundle:nil];
UIViewController *innerViewController = [storyBoard instantiateViewControllerWithIdentifier:@"centerView"];
UINavigationController *centerView = [[UINavigationController alloc] initWithRootViewController:innerViewController];
之后我替换了包裹在动画块中的窗口根视图控制器 -
[UIView transitionWithView:self.viewController.view.window
duration:0.5
options: UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
self.viewController.view.window.rootViewController = centerView;
}
completion:nil];
发生的情况是动画发生了,但我创建的控制器仅部分可见,请看下图-
正如您在旋转过程中看到的那样,视图只是部分呈现。
以前有人遇到过这种行为吗?
【问题讨论】:
-
一个错误?删除模拟器上的应用程序并再次运行。
-
您发布的代码中的 self 是什么?目前尚不清楚您在哪个类中执行此代码。
-
self 是另一个 UIViewController 拥有的一些 NSObject。流程是 - 在其他一些 UIViewController 中实例化我的对象,使用该对象将根视图控制器替换为另一个。 AFAIK 这是非常标准的流程,仍然不知道为什么它被部分渲染。另外,如果我不使用动画而只是替换根视图,它就可以工作。
标签: iphone objective-c ios xcode uiviewcontroller