一个视图控制器出现在另一个视图控制器在iOS 5和以下版本
问题描述:
我有一个UItabbarController与两个视图控制器。当我点击一个视图控制器中的登录按钮时,它应该带我到其他tabbarController。当发生这种情况时,我得到当前tabbarcontroller顶部的第一个视图控制器,它看起来像另一个。它可以在iPhone 6.0模拟器中正常工作,但在iPhone 5.0模拟器中描述失败。一个视图控制器出现在另一个视图控制器在iOS 5和以下版本
在appDelegate.m:
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
{
FLogin *flogin=[[FLogin alloc]initWithNibName:@"FLogin" bundle:nil];
self.window.rootViewController=fblogin; // I think because of this I m getting this issue
}
}
}
在flogin.m
tab=[[[UITabBarController alloc]init]autorelease];
ViewController *searchViewController=[[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]autorelease];
Account *account=[[[Account alloc]initWithNibName:@"Account" bundle:nil]autorelease];
[email protected]"My Account";
tab.viewControllers=[NSArray arrayWithObjects:searchViewController,account,nil];
for(UIViewController *tab1 in tab.viewControllers)
{
if ([[[UIDevice currentDevice] systemVersion] floatValue]>5.0 ||[[[UIDevice currentDevice] systemVersion] floatValue]==5.0)
{
[tab.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"TimesNewRomanPS-BoldMT" size:16.0], UITextAttributeFont, nil]
forState:UIControlStateNormal];
}
}
[self presentModalViewController:tab animated:NO];
答
你说你只是想响应登录程序切换标签?如果是这样,你不应该使用presentModalViewController:
。切换标签的正确方法是使用UITabBarController方法。
[self.tabBarController setSelectedIndex:1];
或
[self.tabBarController setSelectedViewController:self.myOtherViewController];
你改变你的根视图控制器响应登录? – 2013-04-05 13:35:14
iam仅在iOS 5.1,iOS 5 iOS 4.3和iOS 6中出现此问题没有问题 – siva 2013-04-05 13:41:28
可能是我的应用程序中仅包含在iOS 6中的任何功能 – siva 2013-04-05 13:42:18