Ios &引用;n内部一致性异常[…]叹息。Contentview大小为零;使用UINavigationController时崩溃

Ios &引用;n内部一致性异常[…]叹息。Contentview大小为零;使用UINavigationController时崩溃,ios,swift,crash,Ios,Swift,Crash,我的代码在iOS 10.3.3上运行得非常好,而当我在iOS 11.2.1上运行相同的代码时,它会在启动时导致崩溃,并出现以下错误: -[[u UINavigationBarVisualProviderModernIOS\u contentViewFittingHeight],/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit/UIKit-3698.33.7/_UINavigationBarVisualProviderModer

我的代码在iOS 10.3.3上运行得非常好,而当我在iOS 11.2.1上运行相同的代码时,它会在启动时导致崩溃,并出现以下错误:

-[[u UINavigationBarVisualProviderModernIOS\u contentViewFittingHeight],/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit/UIKit-3698.33.7/_UINavigationBarVisualProviderModernIOS.m:569
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“叹气”。Contentview大小为零。”

我清理了代码,清理了派生数据,但这些并没有解决问题

let sideMenuVc = UISideMenuNavigationController(rootViewController: <view controller>)

我用于幻灯片菜单“iOS幻灯片菜单”的库中有一个问题。所以,我只是在库中更改了这两个非常有效的方法

- (void)setup
{
    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"ssidName"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    if (singletonInstance)
        NSLog(@"Singleton instance already exists. You can only instantiate one instance of SlideNavigationController. This could cause major issues");

    singletonInstance = self;

    self.menuRevealAnimationDuration = MENU_SLIDE_ANIMATION_DURATION;
    self.menuRevealAnimationOption = MENU_SLIDE_ANIMATION_OPTION;
}

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

    // Update shadow size of enabled
    if (self.enableShadow)
        self.view.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds].CGPath;
    self.landscapeSlideOffset = self.view.frame.size.width/6;
    self.portraitSlideOffset = self.view.frame.size.width/6;
    self.panGestureSideOffset = 0;
    self.avoidSwitchingToSameClassViewController = YES;
    self.enableShadow = YES;
    self.enableSwipeGesture = NO;
    self.delegate = self;
    // When menu open we disable user interaction
    // When rotates we want to make sure that userInteraction is enabled again
    [self enableTapGestureToCloseMenu:NO];

    if (self.menuNeedsLayout)
    {
        [self updateMenuFrameAndTransformAccordingToOrientation];

        // Handle different horizontal/vertical slideOffset during rotation
        // On iOS below 8 we just close the menu, iOS8 handles rotation better so we support keepiong the menu open
        if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0") && [self isMenuOpen])
        {
            Menu menu = (self.horizontalLocation > 0) ? MenuLeft : MenuRight;
            [self openMenu:menu withDuration:0 andCompletion:nil];
        }

        self.menuNeedsLayout = NO;
    }
}

我用于幻灯片菜单“iOS幻灯片菜单”的库中有一个问题。所以,我只是在库中更改了这两个非常有效的方法

- (void)setup
{
    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"ssidName"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    if (singletonInstance)
        NSLog(@"Singleton instance already exists. You can only instantiate one instance of SlideNavigationController. This could cause major issues");

    singletonInstance = self;

    self.menuRevealAnimationDuration = MENU_SLIDE_ANIMATION_DURATION;
    self.menuRevealAnimationOption = MENU_SLIDE_ANIMATION_OPTION;
}

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

    // Update shadow size of enabled
    if (self.enableShadow)
        self.view.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds].CGPath;
    self.landscapeSlideOffset = self.view.frame.size.width/6;
    self.portraitSlideOffset = self.view.frame.size.width/6;
    self.panGestureSideOffset = 0;
    self.avoidSwitchingToSameClassViewController = YES;
    self.enableShadow = YES;
    self.enableSwipeGesture = NO;
    self.delegate = self;
    // When menu open we disable user interaction
    // When rotates we want to make sure that userInteraction is enabled again
    [self enableTapGestureToCloseMenu:NO];

    if (self.menuNeedsLayout)
    {
        [self updateMenuFrameAndTransformAccordingToOrientation];

        // Handle different horizontal/vertical slideOffset during rotation
        // On iOS below 8 we just close the menu, iOS8 handles rotation better so we support keepiong the menu open
        if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0") && [self isMenuOpen])
        {
            Menu menu = (self.horizontalLocation > 0) ? MenuLeft : MenuRight;
            [self openMenu:menu withDuration:0 andCompletion:nil];
        }

        self.menuNeedsLayout = NO;
    }
}

修正了,两行必须在
视图willlayoutsubviews
中,而不是
setup
方法中。正如@Ishika所说,这是iOS幻灯片菜单的问题

self.enableShadow = YES;
self.enableSwipeGesture = YES;

修正了,两行必须在
视图willlayoutsubviews
中,而不是
setup
方法中。正如@Ishika所说,这是iOS幻灯片菜单的问题

self.enableShadow = YES;
self.enableSwipeGesture = YES;

我在使用Xcode 10.2.1和6.0.4时发生了此错误。我最终以编程方式配置了导航控制器,解决了这个问题

let sideMenuVc = UISideMenuNavigationController(rootViewController: <view controller>)
let sideMenuVc=UISideMenuNavigationController(rootViewController:)

这个错误发生在我使用Xcode 10.2.1和6.0.4时。我最终以编程方式配置了导航控制器,解决了这个问题

let sideMenuVc = UISideMenuNavigationController(rootViewController: <view controller>)
let sideMenuVc=UISideMenuNavigationController(rootViewController:)

检查此项,@sleepwalkerfx:我确实检查了此链接,但没有发现任何有用的内容。您是否查看了此答案?是的,我查看了,但我无法理解应该做哪些更改..检查此项,@sleepwalkerfx:我确实检查了这个链接,但没有发现任何有用的东西。你有没有研究这个答案?是的,我有,但我不明白我应该做什么改变。。