1

我的应用程序与屏幕底部的 UITabBarController 一起工作,该控制器控制 4 个不同的导航控制器,四个导航控制器中的每一个管理一个不同的 UITableViewController:

-(BOOL) application: (UIApplication*) application didFinishLaunchingWithOptions: (NSDictionary*) launchOptions
{
  UITableViewController *TVC1 = [UITableViewController alloc] init];
  UINavigationController *NC1 = [UINavigationController alloc] initWithRootViewController: TVC1];
  NC1.navigationBar.barStyle = UIBarStyleDefault;
  NC1.navigationBar.translucent = NO;

  UITableViewController *TVC2 = [UITableViewController alloc] init];
  UINavigationController *NC2 = [UINavigationController alloc] initWithRootViewController: TVC2];
  NC2.navigationBar.barStyle = UIBarStyleDefault;
  NC2.navigationBar.translucent = NO;

  UITableViewController *TVC3 = [UITableViewController alloc] init];
  UINavigationController *NC3 = [UINavigationController alloc] initWithRootViewController: TVC3];
  NC3.navigationBar.barStyle = UIBarStyleDefault;
  NC3.navigationBar.translucent = NO;

  UITableViewController *TVC4 = [UITableViewController alloc] init];
  UINavigationController *NC4 = [UINavigationController alloc] initWithRootViewController: TVC4];
  NC4.navigationBar.barStyle = UIBarStyleDefault;
  NC4.navigationBar.translucent = NO;


  UITabBarController *tabBarController = [UITabBarController alloc] init];
  NSArray *viewControllers = @[NC1, NC2,NC3,NC4];
  tabBarController.viewControllers = viewControllers

  [tabBarController.ViewControllers objectAtIndex:0] setTitle: @"1"];
  [tabBarController.ViewControllers objectAtIndex:1] setTitle: @"2"];
  [tabBarController.ViewControllers objectAtIndex:2] setTitle: @"3"];
  [tabBarController.ViewControllers objectAtIndex:3] setTitle: @"4"];

  self.window.rootViewController = tabBarController;
  self.window.backgroundColor = [UIColor whiteColor];

  [self.window makeKeyAndVisible];
  return YES;
}

iOS7 的问题是我的 tableViews 属于:

1) 屏幕顶部的 UINavigationController/UINavigationUItem。2)屏幕底部的UITabBar。

我解决了每个 UINavigationControllers 的问题 #1 将 navigationBar.translucent 属性设置为 NO:

NC1.navigationBar.translucent = NO;
NC2.navigationBar.translucent = NO;
NC3.navigationBar.translucent = NO;
NC4.navigationBar.translucent = NO;

我不知道如何解决问题#2。

我没有注意到它,直到我有一个超过 15 行的表格,并且 UITableView 预计会在它出现时向下滚动到底部。底部的在 UITabBar 下。

我在像这样构建的更复杂的 UIViewController(在 UINavigationController 内)也有同样的问题:

CustomTableHeader (UIView) UITableView CustomTableFooter (UIView)

所有的约束都是完美的,但在某些视图中,我发现 CustomTableFooter 位于 UITabBarController 之下,我必须增加它的高度以保持可见。这很奇怪,因为构建 UIVIewController 的代码完全相同,但有时 bottomView 位于 UITabBarController 之下,有时则否。

4

0 回答 0