Ios7 无法在另一个viewController的ViewDidload方法中推送viewController

Ios7 无法在另一个viewController的ViewDidload方法中推送viewController,ios7,uinavigationcontroller,pushviewcontroller,viewdidload,Ios7,Uinavigationcontroller,Pushviewcontroller,Viewdidload,我想在iOS应用程序中执行类似的操作 我有一个启动屏幕和一个登录屏幕,在Splashviewcontroller之后显示LoginViewcontroller 我正在检查viewdiload中的一些条件,在特定条件下,我想推送到另一个viewcontroller。这在ios 5和ios 6中有效,但在ios 7中,如果此条件为真,则不会加载 这是我的密码 -(void)viewDidLoad { [super viewDidLoad]; // Do any additional set

我想在iOS应用程序中执行类似的操作

我有一个启动屏幕和一个登录屏幕,在Splashviewcontroller之后显示LoginViewcontroller

我正在检查
viewdiload
中的一些条件,在特定条件下,我想推送到另一个viewcontroller。这在ios 5和ios 6中有效,但在ios 7中,如果此条件为真,则不会加载

这是我的密码

-(void)viewDidLoad 
{
  [super viewDidLoad];
  // Do any additional setup after loading the view from its nib.

 self.navigationController.navigationBar.hidden=YES;
 mutArrLoggedUsrarray=[[NSMutableArray alloc]init];
 newuser=[NEWLoginUSER sharedManager];
 nws=[NEWWebservice sharedManager];
 alertObject=[AlertsString sharedManager];
 alert=[CreateProgressAlert sharedManager];
 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

 NSString *strLogStatus=[defaults objectForKey:@"LOGWAY"];

 if ([strLogStatus isEqualToString:@"EMAIL"]) {

    phoneLiginView.hidden=YES;
    emailLoginView.hidden=NO;
    isCurrentViewPhone=NO;
    KeychainItemWrapper *keychainItemPHONE = [[KeychainItemWrapper alloc] initWithIdentifier:@"PHONENO" accessGroup:nil];
    NSString *userTypedEmail=[keychainItemPHONE objectForKey:(__bridge id)(kSecAttrAccount)];
    NSString *userTypedPassword=[keychainItemPHONE objectForKey:(__bridge id)(kSecValueData)];
    newuser.strEmail=userTypedEmail;

    TxtEmail.text=newuser.strEmail;
   // [changeBoxbtn setTitle:@"LOGIN WITH PHONE NUMBER" forState:UIControlStateNormal];
    changeBoxbtn.hidden=YES;

}
else if([strLogStatus isEqualToString:@"PHONE"])
{
    txtUsrname.text=[newuser.strPhoneNum stringByReplacingOccurrencesOfString:@"+94" withString:@""];


    isCurrentViewPhone=YES;
    //[changeBoxbtn setTitle:@"LOGIN WITH EMAIL ID" forState:UIControlStateNormal];
    changeBoxbtn.hidden=YES;

}
else{
    isCurrentViewPhone=YES;

    RegisterViewController *regvieww=[[RegisterViewController alloc] initWithNibName:@"RegisterViewController" bundle:nil];


    [regvieww.view addSubview:regvieww.viewVerify];
    [regvieww.view addSubview:regvieww.viewTop];

    [regvieww.view addSubview:regvieww.regViaEmailView];
    [regvieww.view addSubview:regvieww.selectorView];
    [self.navigationController pushViewController:regvieww animated:YES];

}



    originalCenter=self.view.center;
    if ([UIScreen mainScreen].bounds.size.height==480) {
       originalCenter.y=240;
    }

}

你能告诉我这有什么问题吗。如何解决此问题请尝试将条件移动到方法中的AppDelegate: 完成发射

并相应地设置第一个viewController

您还可以尝试将代码从viewDidLoad移动到ViewWillDisplay


推按viewDidLoad中设置了动画的viewController将不起作用。

我在这个else部分中设置了它。请检查并告诉meDon不要在ViewDidLoad中推送另一个viewcontroller。尝试使用ViewDidAspect方法。但是它将显示第一个vwcontroller,然后转到第二个,,,我想避免显示第一个vwcontroller。有什么方法可以做到这一点吗?然后您可能想尝试使用添加ChildViewController的概念。