1

私のアプリは、4 つの異なるナビゲーション コントローラーを制御する画面の下部にある 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 に設定する問題 #1 を解決しました。

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 に該当する場合もあれば、NO に該当する場合もあるため、これは奇妙です。

4

0 に答える 0