我已经在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:^{}];
}
答案 0 :(得分:0)
好吧,我确实发现它与AutoLayout和我的根视图控制器上设置的约束有关。
我做了一个限制,根视图控制器必须至少是一个给定的高度,而不是只是说它是0-nearestSuperview等,现在我看到了我视图的一部分。