2011-12-05 8 views
0

ナビゲーションベースのアプリケーションテンプレートをxcodeで使用しましたが、このテンプレートのデフォルトでは、テーブルビューを画面に合わせるように設定していますが、スクリーン。ナビゲーションベースのアプリケーションテーブルビューフレーム

最初に動作するコードですが、テーブルから行が選択され、ユーザーがテーブルビューを押したときに次の画面に行くと、フレームではなく画面が表示されます。

- (void)viewDidAppear:(BOOL)animated { 

    // set the frame size 
    CGRect frame = self.tableView.frame; 
    frame = CGRectMake(16.0, 36.0, 254.0, 350.0); 
    self.tableView.frame = frame; 

    [super viewDidAppear:animated]; 
    } 

ご協力いただきありがとうございます。

+1

コントローラの種類は何ですか?それがuitableviewcontrollerなら、それは体系的にサイズ変更され、普通のUIコントロールでなければなりません。このタイプの小さなテーブルでは、私はususally内部にuitbaleviewを置くバックグラウンドで簡単なuiviewを使用します。 – gregory

+0

こんにちは、ありがとう、ええ、それはuitableviewcontrollerです、どうすればそれをやりますか? – Sami

答えて

1

のUIViewControllerに変更するクラスの名前と、コントローラのビューのコンセントにリンクのUIViewを作成し、テーブルを削除IBでIBOutlet

@interface mycontroller : UIViewController <UITableViewDelegate, UITableViewDataSource> { 
    IBOutlet UITableView* tableView; 
    .... 
} 

を追加します。次に、ビューのサブビューとして配置するテーブルビューを作成します。これはサイズを維持します。コンセントをtableViewに設定し、コントローラをデリゲートとデータソースとして設定します。次に、現在のコントロールと同じように、テーブルビュー(numberOfSections ...、numberOfRows ...、cellForRow ...)のメソッドを実装するだけです。

+0

ありがとう、完璧に働いた。 – Sami

+0

私は2番目のレベルのビューコントローラのために同じことをしようとしているので、私はクラス名をUITableViewControllerではなくUIViewControllerに変更し、IBOutletを追加しました。私は新しいxibを作成してView Controllerを追加しようとしましたが、View Controllerのクラスを選択してTable Viewを追加してアウトレットをリンクしましたが、File's OwnerクラスはNSObjectと書かれています何にもリンクしていない。だから私はそれがクラッシュするアプリを実行するとき。何か案は? – Sami

+0

IBでは、ファイルの所有者クラスを設定/変更できます:ファイルの所有者を選択し、IDインスペクタ(alt-cmd-3)を開き、右側のペインが表示され、クラス名を入力します。 – gregory

関連する問題