2017-09-22 98 views
6

Her seferinde, uygulamasındaki navigationController ile bir görünümü zorlamaya çalıştığımda, aşağıda verilen konsol mesajını alırım. Ancak sadece basit görünüm kontrol cihazını zorluyorsam, iyi çalışıyor, sadece navigasyon kontrol cihazı ile gerçekleşiyor.UINavigationController Crashes on Xcode 9

Görünümleri zorlamak için üçüncü taraf kitaplığı kullanmıyorum, UIkit frameworkünün tamam olup olmadığını kontrol ettim, ayrıca projeyi oluşturmadan önce de temizlerim, ayrıca özel bir görünüm denetleyiciden farklı yeni bir görünüm denetleyicisi ile denedim ancak hata Aynı şey, yalnızca Xcode 9.0'ın yeni sürümünde, önceki sürüm 8.0'da gerçekleşiyor, bu gerçekleşmedi. Burada

 
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Sigh. Contentview size is zero.' 

*** First throw call stack: 
(
0 CoreFoundation      0x000000010d6ec1cb __exceptionPreprocess + 171 
1 libobjc.A.dylib      0x00000001132a5f41 objc_exception_throw + 48 
2 CoreFoundation      0x000000010d6f1362 +[NSException raise:format:arguments:] + 98 
3 Foundation       0x000000010eabb089 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193 
4 UIKit        0x00000001110d7701 -[_UINavigationBarVisualProviderModernIOS _contentViewFittingHeight] + 265 
5 UIKit        0x00000001110da40e -[_UINavigationBarVisualProviderModernIOS heightRangeFittingWidth:] + 427 
6 UIKit        0x00000001110da253 -[_UINavigationBarVisualProviderModernIOS sizeThatFits:] + 138 
7 UIKit        0x000000011105443d -[UIView(UIConstraintBasedLayout) systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:] + 246 
8 UIKit        0x00000001106cc900 -[UINavigationController setNavigationBar:] + 348 
9 UIKit        0x00000001106cc677 -[UINavigationController _navigationBarHiddenByDefault:] + 161 
10 UIKit        0x00000001106d4a7d -[UINavigationController loadView] + 183 
11 UIKit        0x0000000110697941 -[UIViewController loadViewIfRequired] + 195 
12 UIKit        0x000000011069819e -[UIViewController view] + 27 
13 UIKit        0x00000001106e36f6 -[UINavigationController pushViewController:transition:forceImmediate:] + 676 
14 UIKit        0x00000001106e31d2 -[UINavigationController pushViewController:animated:] + 792 
15 UIKit        0x00000001106c2cd1 -[UINavigationController initWithRootViewController:] + 125 
16 Tigo Money Staging     0x000000010a1add26 -[MTAppDelegate openStartUp] + 358 
17 Tigo Money Staging     0x000000010a1ac8c1 -[MTAppDelegate application:didFinishLaunchingWithOptions:] + 241 
18 UIKit        0x00000001104f135a -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 267 
19 UIKit        0x00000001104f2db7 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4105 
20 UIKit        0x00000001104f8245 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1720 
21 UIKit        0x00000001108b3c6c __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 924 
22 UIKit        0x0000000110c813ef +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 153 
23 UIKit        0x00000001108b3865 -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 249 
24 UIKit        0x00000001108b40c3 -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 668 
25 UIKit        0x0000000111211c11 __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 262 
26 UIKit        0x0000000111211aca -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 444 
27 UIKit        0x0000000110effb9c __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 420 
28 UIKit        0x00000001110fac3e _performActionsWithDelayForTransitionContext + 100 
29 UIKit        0x0000000110eff998 -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 231 
30 UIKit        0x0000000110c80a4c -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 392 
31 UIKit        0x00000001104f6ac6 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 523 
32 UIKit        0x0000000110abf523 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 369 
33 FrontBoardServices     0x0000000118890158 -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 338 
34 FrontBoardServices     0x0000000118898c4d __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 235 
35 libdispatch.dylib     0x000000011411743c _dispatch_client_callout + 8 
36 libdispatch.dylib     0x000000011411caf4 _dispatch_block_invoke_direct + 592 
37 FrontBoardServices     0x00000001188c4672 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24 
38 FrontBoardServices     0x00000001188c4328 -[FBSSerialQueue _performNext] + 464 
39 FrontBoardServices     0x00000001188c4897 -[FBSSerialQueue _performNextFromRunLoopSource] + 45 
40 CoreFoundation      0x000000010d68f2b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
41 CoreFoundation      0x000000010d72ed31 __CFRunLoopDoSource0 + 81 
42 CoreFoundation      0x000000010d673c19 __CFRunLoopDoSources0 + 185 
43 CoreFoundation      0x000000010d6731ff __CFRunLoopRun + 1279 
44 CoreFoundation      0x000000010d672a89 CFRunLoopRunSpecific + 409 
45 GraphicsServices     0x0000000114ce59c6 GSEventRunModal + 62 
46 UIKit        0x00000001104f9d30 UIApplicationMain + 159 
47 Tigo Money Staging     0x000000010a2f8a5f main + 111 
48 libdyld.dylib      0x0000000114193d81 start + 1 
49 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

kilitleniyor cümle NavigationController kullanımdan sonra
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
CustomViewController *startUpVC = [[CustomViewController alloc] init]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:startUpVC]; 

didFinishLaunchingWithOptions

benim kod bir örnektir.

+0

çözümü buldunuz mu? –

+1

henüz çalışmıyor, üzerinde çalışıyorum –

+0

Görünüm denetleyicisini navigasyon denetleyicisine yerleştirdiğinizden emin misiniz? Ve sonra başka bir denetleyiciye bas? –

cevap

0

Aynı sorunla uğraştım, Xcode 8 ile kaydedilen ve Xcode 9 ile projede açılan bir storyboard olduğunda, Xcode 9 belgeyi güvenli alan kullanarak kaydetmesi nedeniyle olur. Xcode 9 ile kaydedilen XIb kaynak kodu:

<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> 
<device id="retina4_7" orientation="portrait"> 
    <adaptation id="fullscreen"/> 
</device> 
<dependencies> 
    <deployment identifier="iOS"/> 
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13173"/> 
    <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> 
    <capability name="Safe area layout guides" minToolsVersion="9.0"/> 
    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 
</dependencies> 
</document> 

ancak XIb Xcode 8 kaydedilmiş olan: buna göre film şeridinin

<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 
<device id="retina4_0" orientation="portrait"> 
    <adaptation id="fullscreen"/> 
</device> 
<dependencies> 
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/> 
    <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 
</dependencies> 
</document> 

değiştirme kaynak kodu.

Umut, yardımcı olacaktır!

+0

Çok teşekkürler, bunu deneyeceğim, çözümünüzü anlamlandırın –

+1

Aynı konularla karşılaşıyorum. Hangi değişikliği önerdiğini açıklar mısınız? Kaynak kodunu xcode 8 formatına geri döndürüyorum (güvenli alan yok) veya tüm storyboard'ların ve Nib'lerin xcode 9 formatına sahip olduğundan emin olmalı mıyım? – pbuchheit

0

Görünüm Denetleyicinizi seçin ve ardından Editor-> Embed In-> Navigasyon Denetleyici'ye gidin. Denetleyici denetleyici hiyerarşisinde olmayan bir süre varsa, kullanıcı başka bir denetleyiciye geçmek istediğinde uygulama kilitleniyor. Umarım yardımcı olur.

+0

Merhaba! bu durumda View Controller'ım bir navigasyon kontrolörüne gömülmeyen sadece bir ".xib" e sahiptir, bu durumda bir film şeridinde değildir. Yine de kontrol edeceğim. Cevabınız için teşekkürler :) –