0

私の人生では、各タブバー項目ビューでナビゲーションコントローラー (およびバー) を取得することはできません。これが私の appdelegate です。何が欠けていますか? FrontPageOpiniontableviewcontrollers も同様ですが、名前のテーブルを忘れてしまいました。

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:        (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

  FrontPageViewController *frontPageVC = [[FrontPageViewController alloc] initWithNibName:nil bundle:nil];
  frontPageVC.title = @"Front Page";
  frontPageVC.tabBarItem.image = [UIImage imageNamed:@"second"];
  UINavigationController *frontPageNavController = [[UINavigationController alloc] initWithRootViewController:frontPageVC];

  CampusTableViewController *campusVC = [[CampusTableViewController alloc] initWithNibName:nil bundle:nil];
  campusVC.title = @"Campus";
  campusVC.tabBarItem.image = [UIImage imageNamed:@"second"];
  UINavigationController *campusNavController = [[UINavigationController alloc] initWithRootViewController:campusVC];

  OpinionViewController *opinionVC = [[OpinionViewController alloc] initWithNibName:nil bundle:nil];
  opinionVC.title = @"Opinion";
  opinionVC.tabBarItem.image = [UIImage imageNamed:@"second"];
  UINavigationController *opinionNavController = [[UINavigationController alloc] initWithRootViewController:opinionVC];

  SportsTableViewController *sportsVC = [[SportsTableViewController alloc] initWithNibName:nil bundle:nil];
  sportsVC.title = @"Sports";
  sportsVC.tabBarItem.image = [UIImage imageNamed:@"second"];
  UINavigationController *sportsNavController = [[UINavigationController alloc] initWithRootViewController:sportsVC];

  PDFViewController *pdfVC = [[PDFViewController alloc] initWithNibName:nil bundle:nil];

  NSArray *controllers = [NSArray arrayWithObjects:frontPageVC, campusVC, opinionVC, sportsVC, pdfVC, nil];

  self.tabBarController = [[UITabBarController alloc] init];
  self.tabBarController.viewControllers = controllers;

  self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;

  [[self.tabBarController.viewControllers objectAtIndex:0] setRootViewController:frontPageNavController];

}

ありがとう!

編集:どうやら私の問題を説明するためにもっと入力する必要があるようです。なぜなら、SOは一定量の単語なしでは投稿できないからですか?

4

3 に答える 3

2

この行を変更します

NSArray *controllers = [NSArray arrayWithObjects:frontPageVC, campusVC, opinionVC, sportsVC, pdfVC, nil];

それに

UINavigationController *pdfNavController = [[UINavigationController alloc] initWithRootViewController:pdfVC];
NSArray *controllers = [NSArray arrayWithObjects:frontPageNavController, campusNavController, opinionNavController, sportsNavController, pdfNavController, nil];
于 2013-01-10T08:40:24.160 に答える
0

なぜreturnステートメントの後にこのメソッドを与えたのですか?

[[self.tabBarController.viewControllers objectAtIndex:0] setRootViewController:frontPageNavController];

returnステートメントの前にこれを与えるか、このステートメントを削除してみてください。次の行を返すuは実行されないためです。また、問題を明確にお知らせください。あなたがやろうとしていること。

于 2013-01-10T08:41:00.390 に答える
0

個々のコントローラーではなく、ナビゲーションコントローラーcontrollersを含める必要があります。

NSArray *controllers = [NSArray arrayWithObjects:frontPageNavController, campusNavController, opinionNavController, sportsNavController, pdfNavController, nil];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = controllers;

self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;

// you can remove the last line: [[self.tabBarController.viewControllers objectAtIndex:0] setRootViewController:frontPageNavController];

Apple はドキュメントで (ヒューマン インターフェイス ガイドライン、ビュー コントローラー プログラミング、タブ バー コントローラー プログラミング、またはナビゲーション コントローラー プログラミングのいずれに含まれるかは覚えていません)、ナビゲーション コントローラーとタブ バー コントローラーが必要な場合は、ナビゲーションを配置する必要があると述べています。タブバーコントローラー内のコントローラー。

于 2013-01-10T08:38:42.240 に答える