开发者社区> 问答> 正文

关于pushViewController不正常运行

pushViewControllerAppDelegate中不正常运行,只有警报视图解除了。

代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
loginReapeat = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(repeatLoginProcess) userInfo:nil repeats:YES];    
//First Launch Settings
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"])
{

}
else
{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    [self alertShow];
}    
[window addSubview:[navigationController view]];

[window makeKeyAndVisible];

return YES;
}     
-(void)alertShow{    
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Help!" message:@"Need some help to use this App? Please tap the 'Help' button." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Help",nil];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Help"])
{
    SignUp *signUp = [[SignUp alloc]initWithNibName:@"SignUp" bundle:nil]
    [self.navigationController pushViewController:signUp animated:YES];

}
} 

展开
收起
爵霸 2016-03-19 14:12:01 2049 0
1 条回答
写回答
取消 提交回答
  • 原因有可能是你在执行alertview 代理方法的内部pushViewController时,当前的window还没有设置好它的rootViewcontroller .所以你可以尝试这样改一下

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    loginReapeat = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(repeatLoginProcess) userInfo:nil repeats:YES];  
    [window addSubview:[navigationController view]]; //先设置window 的rootViewcontroller
    
    //First Launch Settings
    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"])
    {
    
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    
        [self alertShow];
    }    
    [window makeKeyAndVisible];
    return YES;
    }     
    2019-07-17 19:08:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多