6

私は現在、次のようにビューを設定しています。

@interface BlogViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
    UITableView *mainTableView;
}

@property (nonatomic, retain) UITableView *mainTableView;

ご覧のとおり、すべてのデータをロードするUITableViewが内部にあります。ただし、次の関数を呼び出すと、次のようになります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    SingleBlogViewController *viewController = [[SingleBlogViewController alloc] init];
    [self.navigationController pushViewController:viewController animated:YES];
    //[self presentModalViewController:viewController animated:YES];
    [viewController release];
}

何も起こりません。どういうわけか、私のUITableView中はUIViewControllerビューを押していません。これはそうではないからUITableViewControllerですか?それに変更してみましたが、それでもうまくいきませんでした。

ここで何かが足りませんか?

4

2 に答える 2

26

このブログ投稿の最初の部分は、Interface Builder を使用せずにプログラムで UINavigationController を作成して使用する方法を示すのに役立つことがわかりました。

ドキュメントとチュートリアルで強調してほしかったことのいくつか:

  • を作成するUINavigationControllerと、無料で UIView と UINavigationBar を取得できます (つまり、それらを個別に追加して、それらを接続する方法を理解する必要はありません)。

  • myUINavigationController.viewプロパティを「メイン」ビューとして追加UIViewControllerし、UINavigationController にプッシュ/ポップすると、myUINavigationController.viewUIView に表示されるように自動的に表示されます。

  • UIViewControlleraを aにプッシュするUINavigationControllerと、UIViewController.navigationControllerが入力されます。ビューをナビゲーション コントローラーにプッシュしていない場合、そのプロパティは空だと思います。

  • プログラムでボタンを に追加する時間/場所UINavigationBarは、 をいつどこで作成するUINavigationControllerかではなく、 にプッシュするときに個々UIViewControllerの が読み込まれるときに行われますUINavigationController

  • に最初にプッシュされたメソッドUINavigationControllerのに「完了」ボタンを追加するだけで済みました。その最初のビューの上にプッシュしたものには、カバーされた に移動するための「戻る」ボタンが自動的にありました。UINavigationBarviewDidLoadUIViewControllerUINavigationControllerUIViewControllerUIViewController

  • のスタックに置く前にのtitleプロパティを設定した場合。s タイトルは、ビューのタイトルになります。同様に、「戻る」ボタンは、一般的に「戻る」と言う代わりに、戻るビューに自動的に名前を付けます。UIViewControllerUINavigationControllerUINavigationBar

于 2011-01-19T22:07:30.480 に答える
-3

UINavigationController をプログラムで追加する方法」をご覧ください。

上記のリンクにアクセスして、UINavigationController に関するすべての情報を入手してください。

UINavigationController は UIViewController のサブクラスですが、UIViewController とは異なり、通常はサブクラス化するためのものではありません。これは、ナビゲーション コントローラー自体がナビゲーション バーのビジュアル以外にカスタマイズされることはめったにないためです。UINavigationController のインスタンスは、コードまたは XIB ファイルで比較的簡単に作成できます。

于 2011-12-06T09:06:05.577 に答える