私のアプリにはUITabBarControllerがあります。その中で、タブの1つはUINavigationControllerを含むUIViewControllerです。その中にはUITableViewControllerがあります。UITabBarViewController内のUINavigationController内でUITableViewのサイズを変更するにはどうすればよいですか?
問題は、何らかの理由でTableViewのサイズがオフで、テーブルの下部エントリの一部がTabBarによって覆い隠されていることです。私はテーブルビューのサイズを変更するために考えられるすべてを試しましたが、無駄です。ここでは、コードの関連部分です:
AppDelegate
tabBarController = [[UITabBarController alloc] init];
LogbookViewController *firstVC = [[LogbookViewController alloc] init];
PaceCalcViewController *secondVC = [[PaceCalcViewController alloc] init];
SettingsTableViewController *thirdVC = [[SettingsTableViewController alloc] init];
...
// Add them as children of the tab bar controller
tabBarController.viewControllers = [NSArray arrayWithObjects: firstVC, secondVC, thirdVC, nil];
LogbookViewController(のUIViewControllerのサブクラス)
- (void)viewDidLoad {
[super viewDidLoad];
navigationController = [[UINavigationController alloc] init];
[self.view addSubview:navigationController.view];
WorkoutListTableViewController *listController = [[WorkoutListTableViewController alloc] init];
listController.managedObjectContext = self.managedObjectContext;
[navigationController pushViewController:listController animated:NO];
[listController release];
}
WorkoutListTableViewController(のUITableViewControllerのサブクラス)は、現在では特に何もありません。それは私がそれに影響を与えると思いますが、ここではViewDidLoadです:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Workouts";
self.navigationItem.leftBarButtonItem = self.editButtonItem;
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"List" style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
NSString *paths = [[NSBundle mainBundle] resourcePath];
NSString *fileName = @"short_bg.png";
NSString *filePath = [paths stringByAppendingPathComponent:fileName];
UIImage *paper = [[UIImage alloc] initWithContentsOfFile:filePath];
UIImageView *paper_bg = [[UIImageView alloc] initWithImage:paper];
self.tableView.backgroundView = paper_bg;
[fileName release];
[paper release];
//self.navigationItem.leftBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)];
self.navigationItem.rightBarButtonItem = addButtonItem;
[addButtonItem release];
/*UIBarButtonItem *importButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Import" style:UIBarButtonItemStylePlain target:self action:@selector(importDialogAction:)];
self.navigationItem.leftBarButtonItem = importButtonItem;
[importButtonItem release];*/
}
}
私はLogControlControllerでlistController.view.frame = CGRectMake(何でも)、またはWorkoutListTableViewControllerでself.tableView.frame - CGRectMake(何でも)を試しましたが、何も動いていません。何か案は?それが役に立ったら、もっとコードを投稿することができます。
問題は、タブのタイトルとナビゲーションバーのタイトルが異なるようにすることです。別々に定義する方法はありますか?また、別のビューコントローラを作成した理由の一部は、モーダルビューが表示されているときにタブバーが表示されたままになるように、テーブルの上に表示するモーダルビューコントローラがあるためです。特別なサブビューなしでこれを行う別の方法はありますか? –