我有一種方法,呈現控制器並使呈現控制器成爲根控制器。它在Xcode 5中工作正常,但在Xcode 6中它崩潰。我需要出示視圖控制器,使之根,沒有任何查看錯誤......舊的代碼崩潰,新的有錯誤,同時也使根控制器呈現控制器並使其成爲根控制器
原代碼
-(void)presentViewController:(UIViewController *)controller withCompletion:(void(^)(void))completion
{
UIViewController *currentController;
currentController = [self controller];
[currentController presentViewController:controller animated:true completion:^{
[controller dismissViewControllerAnimated:false completion:NULL];
if(completion){
completion();
}
}];
}
試圖與延遲來改變它像
-(void)presentViewController:(UIViewController *)controller withCompletion:(void(^)(void))completion
{
UIViewController *currentController;
currentController = [self controller];
[currentController presentViewController:controller animated:true completion:^{
//use delay before execution
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[controller dismissViewControllerAnimated:false completion:NULL];
if(completion){
completion();
}
});
}];
}
但是,我有視圖閃爍與以前的看法。也試圖使不在一個區塊
-(void)presentViewController:(UIViewController *)controller withCompletion:(void(^)(void))completion
{
UIViewController *currentController;
currentController = [self controller];
[currentController presentViewController:controller animated:true completion:NULL];
[controller dismissViewControllerAnimated:false completion:NULL];
if(completion){
completion();
}
}
但這種方式我堅持以前的看法。
您是否嘗試過推視圖控制器? – twodayslate 2014-09-22 09:39:05
它在哪一行崩潰,錯誤消息是什麼? – geo 2014-09-22 09:41:48
如果沒有延遲(dispatch_after(...))它崩潰 – mrDeadLinez 2014-09-23 09:45:36