我已在该视图中创建了一个登录和注册视图,登录后用户可以在tabbar控制器中查看其配置文件页面,我已经编码了
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if(nil != qName)
{
elementName = qName;
}
if ([elementName isEqualToString:@"ABC"])
{
//some code
}
else if ([elementName isEqualToString:@"DEF"])
{
//some code
}
else if ([elementName isEqualToString:@"GHI"])
{
//some code
}
else if ([elementName isEqualToString:@"JKL"])
{
//some code
}
else if ([elementName isEqualToString:@"end"])
{
[activityIndicator stopAnimating];
self.tabBarController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:self.tabBarController animated:YES];
[self.tabBarController release];
}
}
所以在成功之后我调用了一个tabbarcontroller,它在xib文件中定义为tabbar controller。问题是,当用户成功登录tabbar控制器的第一个视图时,它的viewWillAppear
方法被调用了两次,我可以在控制台中看到错误,如Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate
我也在注册页面中完成了相同的代码,但它将在iOS 5.0中崩溃,并且它在iOS 4.0中运行。所以我上面的代码中有任何错误我正在实现登录和注册页面方法,如instagram
,picyou
和pinterest
应用程序。请帮助我,我被困在这里。
答案 0 :(得分:0)
原因是您在其预期用途之外使用UITabBarController。它仅用作根控制器,如果需要与tabbar使用工具栏类似的东西。大约半年前,我遇到了确切的问题。不幸的是,如果你这样使用它,你也会遇到其他问题。
因为UITabBarController类继承自UIViewController类,所以选项卡栏控制器具有可通过view属性访问的自己的视图。部署选项卡栏界面时,必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面永远不应该作为另一个视图控制器的子项安装。
用我的代码替换你的代码:
self.tabBarController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[[[UIApplication sharedApplication] keyWindow] setRootViewController:self.tabBarController];
[self presentModalViewController:self.tabBarController animated:YES];
self.tabBarController.selectedIndex = 0;