2

ここで何が欠けているのかわかりません。カスタムがUINavigationControllerあり、バーに永続性を追加しようとしUIBarButtonItemています。

-(void)viewDidLoad
{
    self.navigationBar.barStyle = UIBarStyleBlack;
    UIBarButtonItem *bbi = [[UIBarButtonItem alloc] initWithTitle:@"いいえ..."
               スタイル:UIBarButtonItemStyleBordered
                 対象:自分
                 アクション:@selector(goBack:)];
    self.navigationItem.leftBarButtonItem =bbi;
    [bbiリリース];
}
-(void)goBack:(id)送信者
{
    NSLog(@"今すぐ戻る");
}

ここで何が欠けていますか?- ところで、私は IB を使用したくない/使用しません。

更新:現在、これは私が得ることができる最も近いものです:

-(void)viewDidLoad
{
    self.navigationBar.barStyle = UIBarStyleBlack;
    UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 20, 320, 44)];
    navBar.barStyle = UIBarStyleBlack;
    UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"現在再生中..."];
    [navBar pushNavigationItem:navItem アニメーション:NO];
    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)];
    navItem.rightBarButtonItem = editButton;

    [self.view addSubview:navBar];

    [編集ボタンを離す];
    [navItem リリース];
    [navBar リリース];
    [super viewDidLoad];
}

すでにナビゲーションバーがあるものにナビゲーションバー全体を追加する必要があるのUINavigationControllerはひどいです....既存のものを使用しようとすると、次のエラーが発生します。

「NSInternalInconsistencyException」、理由:「コントローラーによって管理される UINavigationBar で直接 pushNavigationItem:animated: を呼び出すことはできません。」

....本当???

4

1 に答える 1

22

navigationItemインスタンスではなく、ナビゲーション コントローラーの「内部」に表示されるUINavigationControllerビュー コントローラーで設定する必要があります。view

self.navigationItemコントローラー自体が別のナビゲーションコントローラーにプッシュされている場合、ナビゲーションコントローラーの設定は機能します。

于 2010-03-29T09:04:17.880 に答える