Сбой приложения при [self dismissModalViewControllerAnimated: NO]; - PullRequest
0 голосов
/ 19 мая 2011

в моем приложении у меня есть UiViecontroller.
когда я закрываю этот UiViecontroller, я делаю dismissModalViewControllerAnimated в своем обратном действии:
[self dismissModalViewControllerAnimated: NO];
представление удалено, но происходит сбой приложения со следующим журналом.

    Thread 0 Crashed:
    0   libobjc.A.dylib                 0x34a80464 objc_msgSend + 16
    1   UIKit                           0x341aab5c _UIView + 52
    2   UIKit                           0x341aaaa8 -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 152
    3   UIKit                           0x341aaace -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 190
    4   UIKit                           0x341aaace -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 190
    5   UIKit                           0x341aaace -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] + 190
    6   UIKit                           0x341aa9fe -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:] + 22
    7   UIKit                           0x341aa6b8 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 304
    8   UIKit                           0x341c1724 -[UIView(Hierarchy) insertSubview:atIndex:] + 32
    9   UIKit                           0x34276c80 -[UIWindowController _transplantView:toSuperview:atIndex:] + 76
    10  UIKit                           0x34274e0e -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 2522
    11  UIKit                           0x342e4368 -[UIViewController _dismissModalViewControllerWithTransition:from:] + 1472
    12  UIKit                           0x342e3868 -[UIViewController dismissModalViewControllerWithTransition:] + 376
    13  UIKit                           0x342e372e -[UIViewController dismissModalViewControllerWithTransition:] + 62
    14  UIKit                           0x342e1662 -[UIViewController dismissModalViewControllerAnimated:] + 86
    15  KabushikiShimbun                0x0005fd30 -[PDFPageScrollViewController backAction:] (PDFPageScrollViewController.m:1633)
    16  CoreFoundation                  0x35821fe6 -[NSObject(NSObject) performSelector:withObject:withObject:] + 18
    17  UIKit                           0x341c84a6 -[UIApplication sendAction:to:from:forEvent:] + 78
    18  UIKit                           0x342637ae -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 86
    19  CoreFoundation                  0x35821fe6 -[NSObject(NSObject) performSelector:withObject:withObject:] + 18
    20  UIKit                           0x341c84a6 -[UIApplication sendAction:to:from:forEvent:] + 78
    21  UIKit                           0x341c8446 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
    22  UIKit                           0x341c8418 -[UIControl sendAction:to:forEvent:] + 32
    23  UIKit                           0x341c816a -[UIControl(Internal) <br>_sendActionsForEvents:withEvent:] + 350
    24  UIKit                           0x341c89c8 -[UIControl touchesEnded:withEvent:] + 336
    25  UIKit                           0x341be34e -[UIWindow _sendTouchesForEvent:] + 362
    26  UIKit                           0x341bdcc8 -[UIWindow sendEvent:] + 256
    27  UIKit                           0x341a8fc0 -[UIApplication sendEvent:] + 292
    28  UIKit                           0x341a8900 _UIApplicationHandleEvent + 5084
    29  GraphicsServices                0x320c8efc PurpleEventCallback + 660
    30  CoreFoundation                  0x3580f6f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
    31  CoreFoundation                  0x3580f6bc __CFRunLoopDoSource1 + 160
    32  CoreFoundation                  0x35801f76 __CFRunLoopRun + 514
    33  CoreFoundation                  0x35801c80 CFRunLoopRunSpecific + 224
    34  CoreFoundation                  0x35801b88 CFRunLoopRunInMode + 52
    35  GraphicsServices                0x320c84a4 GSEventRunModal + 108
    36  GraphicsServices                0x320c8550 GSEventRun + 56
    37  UIKit                           0x341dc322 -[UIApplication _run] + 406
    38  UIKit                           0x341d9e8c UIApplicationMain + 664
    39  KabushikiShimbun                0x00002800 main (main.m:14)
    40  KabushikiShimbun                0x000027b4 start + 32

не понял, почему.
Любой совет?
Спасибо.

Ответы [ 3 ]

0 голосов
/ 19 мая 2011

Родитель контроллера представления ответственен за отклонение его модального контроллера представления.Поэтому вы должны сказать

[self.parentViewController dismissModalViewControllerAnimated: YES];

Чтобы узнать больше о представлении и отклонении представлений контроллера, обратитесь к моему посту здесь

0 голосов
/ 15 апреля 2013

Убедитесь, что ваш модальный контроллер вида не выпущен в то время, когда вы хотите, чтобы он отклонился.

0 голосов
/ 19 мая 2011

контроллер вида изначально называется модальным?Например, вы изначально отображаете представление, вызывая что-то вроде:

[myView presentModalViewController:myViewController animated:NO];

Если это не так, это может быть причиной вашего сбоя, приложение пытается избавиться от контроллера, которыйне модально с помощью метода dismissModalViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...