【发布时间】:2011-05-16 19:17:29
【问题描述】:
我有一个在应用程序委托中创建的标签栏。通过从选项卡栏加载的视图之一单击按钮调用操作表单,我打开了帮助屏幕,但加载后有一个抽搐动作。
请原谅我的非正式发言。过去几个小时我一直在努力解决这个问题。
-(void)flipToHelp {
HelpViewController *helpVariable = [[HelpViewController alloc] initWithNibName:@"HelpView" bundle:nil];
[self setHelpViewController:helpVariable];
[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:_window cache:YES];
[_window removeFromSuperview];
[helpVariable release];
self.window.rootViewController = self.HelpViewController;
[UIView commitAnimations];
}
【问题讨论】:
-
你为什么打电话给
[_window removeFromSuperview]?您不应该从窗口中删除标签栏控制器吗? -
我试过了,但使用“self.window = self.HelpViewController;”时一直出错...警告:语义问题:从“HelpViewController *”分配给“UIWindow *”的指针类型不兼容
-
我不确定重新分配 rootViewController 是否会改变视图。如果是这样,您需要做的就是删除
[_window removeFromSuperview]行。如果更改 rootViewController 还不够,可以这样做:[self.tabBarController removeFromSuperview]; [self.window addSubview:self.HelpViewController.view];。 -
哇!删除
[_window removeFromSuperview];并添加[self.window addSubview:self.HelpViewController.view];成功了!我无法添加[self.tabBarController removeFromSuperview];要恢复主屏幕我做了这个[self.HelpViewController.view setHidden:1]; [self.HelpViewController.view removeFromSuperview]; self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; [UIView commitAnimations];}它似乎工作但它是正确的方法吗?非常感谢丹尼尔!
标签: iphone cocoa-touch ios core-animation