小编jbc*_*man的帖子

dismissModalViewControllerAnimated :(和dismissViewControllerAnimated)在iOS 5中崩溃

我找不到任何合理的解释,但事实仍然是,在iOS 5(xCode 4.2)中,如果我presentModalView:*animated:YES,我可以调用dismissModalViewAnimated:*很好,但如果我调用presentModalView:*animated:NO ,然后调用dismiss方法崩溃.(如果我使用新的presentViewController,它的工作原理相同:animated:completion:+ dismissViewControllerAnimated :).我现在正在尝试解决这个问题(我不希望演示文稿动画)并向Apple报告一个错误,但我已经打了一段时间.欢迎任何和所有建议.在iOS 5上没有多少,所以请尽可能帮助.在iOS 4或iOS 5中不会崩溃的示例代码:

LoginController *loginController = [[LoginController alloc] initWithNibName:@"LoginControllerGG" bundle:nil];
[self presentModalViewController:loginController animated:YES];
[loginController release];
...
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

这将在解雇调用中在iOS 5中使用EXC_BAD_ACCESS崩溃:

LoginController *loginController = [[LoginController alloc]    initWithNibName:@"LoginControllerGG" bundle:nil];
[self presentModalViewController:loginController animated:NO];
[loginController release];
...
[self dismissModalViewControllerAnimated:YES]; //crashes with EXC_BAD _ACCESS
Run Code Online (Sandbox Code Playgroud)

一个注意事项:我在loginController中有一个动画,它发生在viewDidLoad上.去看看是否会改变任何东西,但我想把它拿出去,因为我需要一个解决方案尽快.


[编辑]完整的代码流程...在AppDelegate中,应用程序:didFinishLaunchingWithOptions:

if (!loggedIn)  [myViewController showLoginPanel];
Run Code Online (Sandbox Code Playgroud)

在myViewController中:

- (void)showLoginPanel {    
    LoginController *loginController = [[LoginController alloc] initWithNibName:@"LoginControllerGG" bundle:nil];
    if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]) {
        [self presentViewController:loginController animated:NO completion:nil];
    } else {
        [self presentModalViewController:loginController animated:NO]; //iOS 4 works fine …
Run Code Online (Sandbox Code Playgroud)

iphone uiviewcontroller dismiss ios5

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

dismiss ×1

ios5 ×1

iphone ×1

uiviewcontroller ×1