2016-09-05 5 views
0

Ich habe eine Reihe von Threads auf Stackoverflow zu diesem Thema gelesen, aber keine schien eine Korrektur zu haben, die für meinen grundlegendsten und geradlinigsten Fall funktionierte.disneyViewControllerAnimated verlässt schwarzen Bildschirm

Ich bin mit XCode 7.2.1 und iOS 9.2

Ich habe eine Klasse (Code unten), die eine UIViewController akzeptiert als Moderator eines UINavigationController zu verwenden.

Der folgende Code stammt aus der ONE-Klasse und dient sowohl zum Präsentieren als auch zum Verwerfen.

Beginnend mit Bildschirm 1 unten dargestellt, tippt der Benutzer auf eine Schaltfläche in der linken oberen Ecke, die dann 2. Schließlich die UINavigationController in Bildschirm präsentiert, die Schaltfläche „Fertig“ in der rechten oberen Ecke des UINavigationController (Bildschirm tippte 2) verursacht einen schwarzen Bildschirm ... Bildschirm 3.

Schließlich werden Sie auf dem schwarzen Bildschirm einen kleinen roten Kreis mit einer Nummer darin bemerken. Das ist von der Tab-Leiste in Bildschirm 1 an der Unterseite. Aus irgendeinem Grund stapelte er alle Tab-Bar-Buttons in der Ecke und ließ einen kleinen Bereich für sie, um zu sehen.

-(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

Antwort

0

Nun, habe ich herausgefunden habe, dass es etwas mit Autolayout und die Zwänge setzen auf meinem Root-View-Controller zu tun.

Ich machte eine Einschränkung, dass der Root-View-Controller mindestens eine bestimmte Höhe haben muss, anstatt nur zu sagen, es war 0-nearestSuperview usw., und jetzt sehe ich einen Teil meiner Ansicht.

Verwandte Themen