2012-12-17 30 views
0

我想解僱iOS6中的表單模式視圖。它在iOS5中完全正常,但在6中失敗(項目在兩者中都使用ARC)。表單模式視圖控制器不會在iOS6中解僱

這裏是堆棧時失敗:

#0 0x0175a267 in objc_msgSend_stret() 
#1 0x006d55bd in -[UIView(Geometry) bounds]() 
#2 0x006cc707 in -[UIWindow _updateCurrentTintView]() 
#3 0x0075117b in -[UITransitionView transition:fromView:toView:removeFromView:]() 
#4 0x0097df44 in __91-[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]_block_invoke_0236() 
#5 0x0097d4eb in -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]() 
#6 0x0077ba11 in -[UIViewController _dismissViewControllerWithTransition:from:completion:]() 
#7 0x0077aecd in -[UIViewController dismissViewControllerWithTransition:completion:]() 
#8 0x0077bbdb in -[UIViewController dismissViewControllerAnimated:completion:]() 
#9 0x00056a50 in -[HandDeviceToAssessorViewController dismiss:] at <directory of file> 

視圖控制器通過該創建的:

+ (HandDeviceToAssessorViewController *)handDeviceToAssessorWithWellDoneView 
{ 
    static dispatch_once_t pred; 
    static HandDeviceToAssessorViewController *viewController = nil; 

    dispatch_once(&pred, ^(void) 
        { 
         viewController = [[HandDeviceToAssessorViewController alloc] initWithNibName:@"WellDoneHandDeviceToAssessorView" bundle:[NSBundle mainBundle]]; 
        }); 

    viewController.modalPresentationStyle = UIModalPresentationFormSheet; 
    return viewController; 
} 

並與代碼顯示:

HandDeviceToAssessorViewController *handBackModal = [HandDeviceToAssessorViewController handDeviceToAssessorWithWellDoneView]; 
    handBackModal.delegate = self; 
    [self presentViewController:handBackModal animated:YES completion:nil]; 

視圖控制器是被解僱了。

- (IBAction)dismiss:(id)sender 
{ 
    if ([self.delegate respondsToSelector:@selector(viewWillClose)]) 
    { 
     [self.delegate viewWillClose]; 
    } 

    [self.presentingViewController dismissViewControllerAnimated:YES completion:^(void) 
    { 
     if ([self.delegate respondsToSelector:@selector(viewDidClose)]) 
     { 
      [self.delegate viewDidClose]; 
      self.delegate = nil; 
     } 
    }]; 
} 

我懷疑/希望它不是iOS6中的錯誤。任何想法如何解決這個問題?

+0

我發現了這個問題;我自己的愚蠢的錯誤。在模態視圖被另一個UIViewController調用之前,我正在拍攝一張圖像,並刪除它的所有子視圖和子圖層。在刪除所有UIViews之前,我正在刪除子層。首先發布uiviews已經糾正了這個問題。 – ade177

回答

1

嘗試發送dismissViewController消息到self而不是self.presentingViewController。它將被轉發到正確的視圖控制器。

希望這會有所幫助!

+0

可悲的是沒有。這只是自我之前,我被告知將其更改爲self.presentingViewController,因爲它更正確。可悲的是,既沒有作品。 – ade177

相關問題