読者です 読者をやめる 読者になる 読者になる

24/7 twenty-four seven

iOS/OS X application programing topics.

UITabBarController + UINavigationController + UITableViewという画面構成のときに、次の画面でタブバーを消すようにしていると、前の画面に戻ってきたとき、テーブルの一番下が隠れる。

iPhone Objective-C Cocoa

言葉だけでは分かりにくいので、テレビ番組表iconの画面で説明します。


一覧画面はタブバー + テーブルビュー (UITabBarController + UITableView) という構成になっています。
一番下の列をタップして、次の画面に移動します(Web画面)。
異動先の画面ではタブバーは非表示です。


その後、前の画面に戻ってくると、一番下の列がタブバーに隠れてしまっています。

このとき、なぜかテーブル全体の高さが、タブバーを含めた高さになってしまうので、スクロールをして上に出してもまた隠れてしまいます。
おそらく、タブバーを非表示にしたときの画面の高さがテーブルビューにも適用されてしまうのだと思います。


仕方が無いので、再表示されるときに、テーブルビューの高さを元に戻すようにしています。

- (void)viewWillAppear:(BOOL)animated {
	CGRect aFrame = tvListView.frame;
	tvListView.frame = CGRectMake(aFrame.origin.x, aFrame.origin.y, aFrame.size.width, 367.0f);
	...