dismissViewControllerAnimated离开黑屏

时间:2016-09-05 02:34:03

标签: ios objective-c

我已经在stackoverflow上读了很多关于这个问题的线程,但似乎没有一个线程能够解决我最基本和最直接的问题。

我正在使用XCode 7.2.1和iOS 9.2

我有一个类(下面显示的代码)接受UIViewController作为UINavigationController的演示者。

以下代码来自ONE类,它同时执行呈现和解雇。

从下图所示的屏幕1开始,用户点击左上角的按钮,然后在屏幕2中显示UINavigationController。最后,点击"完成" UINavigationController(屏幕2)右上角的按钮会导致黑屏......屏幕3。

最后,您会在黑色屏幕上注意到一个带有数字的小红圈。 这是来自屏幕1底部的标签栏。由于某种原因,它堆积了角落里的所有标签栏按钮,并留下了一个小区域供他们查看。

-(id)initWithDashboardParentViewController:(TabMapController*)mapVC propertyDelegate:(id<iRpPropertyDelegate>)propertyDelegate
    {
        self = [super init];
        if (self)
        {
            mapViewController = mapVC;
            thePropertyDelegate = propertyDelegate;
        }
        return self;
    }


-(void)displaySpreadsheetOfAllSubitems
    {
        UIViewController *theContentController;

        // Create a generic gridview view controller and initialize it with the data that will be shown.
        theContentController = [[iRpGenericGridViewController alloc] initWithPropertyDelegate:propertyDelegate dashboardDataItem:spreadsheetTableData];

        theContentController.edgesForExtendedLayout = UIRectEdgeNone;

        // Create a navigation controller and embed the content view controller.
        UINavigationController *theNavController = [[UINavigationController alloc] initWithRootViewController:theContentController];

        // If a detail item was found for this section, then display it in the navigation controller.
        if (theNavController)
        {
            // Set up the 'Done' navigation bar button.
            theNavController.topViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(detailDisclosureDone)];

            [mapViewController presentViewController:theNavController animated:YES completion:^(void){}];
        }
    }



-(void)detailDisclosureDone
    {
        [mapViewController dismissViewControllerAnimated:NO completion:^{}];
    }

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

好吧,我确实发现它与AutoLayout和我的根视图控制器上设置的约束有关。

我做了一个限制,根视图控制器必须至少是一个给定的高度,而不是只是说它是0-nearestSuperview等,现在我看到了我视图的一部分。