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:^{}];
}