0

iPhoneアプリにleftBarButtonItemを追加しようとしています。ナビゲーションコントローラーがあり、その中にTableViewControllerがあります。AppDelegate.mファイルに次の行をコーディングしています。

self.viewCon = [[UITableViewController alloc]init];
    self.navCon = [[UINavigationController alloc]initWithRootViewController:self.viewCon];


  self.viewCon.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] 
initWithTitle:@"Second View"  style:UIBarButtonItemStyleBordered target:self action:@selector(push)]autorelease];

ナビゲーション項目は画面に表示されません。テーブルがオンになっています。何が問題になるのでしょうか?ちなみに、ARCやストーリーボードはありません。

4

3 に答える 3

3

その上に NavigationController を備えた TableView が必要であると想定しています。この場合、ルートビューコントローラーはナビゲーションコントローラーであり、テーブルビューではありません。IB でアプリを適切にビルドした場合 (何をしたのかわかりませんので、暗闇の中で突き刺します)、ナビゲーション コントローラーを初期化する必要はありません。この場合、次のように簡単にする必要があります

self.viewCon.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Second View"  style:UIBarButtonItemStyleBordered target:self action:@selector(push)]autorelease];

私が考えているのは、現在設定されている NavController をプログラムによる初期化で上書きしているため、すべてが消えてしまうことです。

これがすべて当てはまり、これを試した可能性がある場合は、エラーと IB セットアップのスクリーンショットを投稿してください。

于 2013-01-29T00:26:39.097 に答える
0

代わりにこれを試してください:

UIBarButtonItem *bbi = [[[UIBarButtonItem alloc] initWithTitle:@"Second View" style:UIBarButtonItemStyleBordered target:self action:@selector(push)]autorelease];
[self.navigationItem setLeftBarButtonItem:bbi];
于 2013-01-28T18:31:28.013 に答える
-1
[self.navigationController setNavigationBarHidden:NO];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setFrame:CGRectMake(0, 0, 49,32)];
        [ backButton setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
        [backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem *back = [[UIBarButtonItem alloc]initWithCustomView:backButton];
        self.navigationItem.leftBarButtonItem = back;
        [back release];
于 2013-01-28T18:50:29.397 に答える