Проблема с UITabBarViewController в качестве мастера UISplitViewController в iOS 8.3

Для проекта, над которым я работаю, я собрал UITabBarViewController в качестве мастера UISplitViewController в универсальном приложении, работающем в симуляторе iPad, он отлично работал в iOS 7.1 и iOS 8.2, но с iOS 8.3 он вылетает с сообщением :

Не удалось загрузить NIB в комплекте: «NSBundle (загружен)» с именем «Z6l-Hd-h3H-view-7sH-l5-cWr»

Обратите внимание, что если вы измените симулятор на один из версий 7.1 или 8.2, он будет работать нормально, я не знаю, что я делаю неправильно или что может быть причиной такого поведения.

Вот пример: https://github.com/AresDev/splitwithtabbar

Спасибо за вашу помощь.

Вот трассировка стека:

*** First throw call stack:
(
    0   CoreFoundation                      0x02004746 __exceptionPreprocess + 182
    1   libobjc.A.dylib                     0x004eea97 objc_exception_throw + 44
    2   CoreFoundation                      0x0200466d +[NSException raise:format:] + 141
    3   UIKit                               0x00a76e2f -[UINib instantiateWithOwner:options:] + 1003
    4   UIKit                               0x00891124 -[UIViewController _loadViewFromNibNamed:bundle:] + 270
    5   UIKit                               0x008918bb -[UIViewController loadView] + 295
    6   UIKit                               0x00891aef -[UIViewController loadViewIfRequired] + 78
    7   UIKit                               0x00892095 -[UIViewController view] + 35
    8   UIKit                               0x008e1d2f -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 426
    9   UIKit                               0x008e136f -[UITabBarController transitionFromViewController:toViewController:] + 64
    10  UIKit                               0x008dd52b -[UITabBarController _setSelectedViewController:] + 339
    11  UIKit                               0x008dd2e5 -[UITabBarController setSelectedIndex:] + 115
    12  UIKit                               0x008dce91 __51-[UITabBarController _setViewControllers:animated:]_block_invoke394 + 43
    13  UIKit                               0x007b6d4f +[UIView(Animation) performWithoutAnimation:] + 82
    14  UIKit                               0x008dcd3d -[UITabBarController _setViewControllers:animated:] + 3627
    15  UIKit                               0x008db403 -[UITabBarController _updateLayoutForTraitCollection:] + 302
    16  UIKit                               0x008dae73 __80-[UITabBarController willTransitionToTraitCollection:withTransitionCoordinator:]_block_invoke + 69
    17  UIKit                               0x00c36107 -[_UIViewControllerNullAnimationTransitionCoordinator _applyBlocks:releaseBlocks:] + 198
    18  UIKit                               0x00c35d9a -[_UIViewControllerNullAnimationTransitionCoordinator _runAlongsideAnimations] + 148
    19  UIKit                               0x008af063 -[UIViewController(UIContainerViewControllerProtectedMethods) setOverrideTraitCollection:forChildViewController:] + 399
    20  UIKit                               0x00c1fa10 -[UISplitViewController _setMasterOverrideTraitCollectionActive:] + 127
    21  UIKit                               0x00c1b35a -[UISplitViewController initWithCoder:] + 112
    22  UIKit                               0x00bfa92e UINibDecoderDecodeObjectForValue + 739
    23  UIKit                               0x00bfa643 -[UINibDecoder decodeObjectForKey:] + 371
    24  UIKit                               0x00a77c1a -[UIRuntimeConnection initWithCoder:] + 189
    25  UIKit                               0x00bfa92e UINibDecoderDecodeObjectForValue + 739
    26  UIKit                               0x00bfab30 UINibDecoderDecodeObjectForValue + 1253
    27  UIKit                               0x00bfa643 -[UINibDecoder decodeObjectForKey:] + 371
    28  UIKit                               0x00a76ed0 -[UINib instantiateWithOwner:options:] + 1164
    29  UIKit                               0x00d34185 -[UIStoryboard instantiateViewControllerWithIdentifier:] + 220
    30  UIKit                               0x00d34301 -[UIStoryboard instantiateInitialViewController] + 74
    31  UIKit                               0x0072c6fc -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 79
    32  UIKit                               0x0072c984 -[UIApplication _loadMainInterfaceFile] + 245
    33  UIKit                               0x0072b2f4 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1337
    34  UIKit                               0x0074493e __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke + 59
    35  UIKit                               0x0072a04a -[UIApplication workspaceDidEndTransaction:] + 155
    36  FrontBoardServices                  0x031c7c9e __37-[FBSWorkspace clientEndTransaction:]_block_invoke_2 + 71
    37  FrontBoardServices                  0x031c772f __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 54
    38  FrontBoardServices                  0x031d9d7c __31-[FBSSerialQueue performAsync:]_block_invoke_2 + 30
    39  CoreFoundation                      0x01f26050 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16
    40  CoreFoundation                      0x01f1b963 __CFRunLoopDoBlocks + 195
    41  CoreFoundation                      0x01f1b7bb __CFRunLoopRun + 2715
    42  CoreFoundation                      0x01f1aa5b CFRunLoopRunSpecific + 443
    43  CoreFoundation                      0x01f1a88b CFRunLoopRunInMode + 123
    44  UIKit                               0x00729a02 -[UIApplication _run] + 571
    45  UIKit                               0x0072d106 UIApplicationMain + 1526
    46  splitwithtabbar                     0x0000beba main + 138
    47  libdyld.dylib                       0x02bf1ac9 start + 1
    48  ???                                 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

person AresDev    schedule 23.04.2015    source источник


Ответы (1)


  1. Установите контроллер представления элементов UITabBarController как UINavigationController, а не UIViewController.

  2. Вы можете установить MasterController из UISplitviewController непосредственно в UITabBarController.

  3. Лучше установить DetailController UISplitviewController как UINavigationController.

смотри прикрепленную картинку

введите здесь описание изображения

person jpulikkottil    schedule 23.04.2015
comment
Спасибо, это исправляет сбой, и я отметил ответ как выбранный, но мне хотелось бы знать, какие изменения от одной версии к другой приводят к такому поведению. - person AresDev; 23.04.2015
comment
Когда появится новый xcode, я думаю, они заставят нас перестать практиковаться! ;) - person jpulikkottil; 24.04.2015