2016-09-18 8 views
0

UINavigationBarをプログラムで追加し、バーのボタン項目を設定しようとしました。 は、私が試した:右のバーのボタンが表示されません

self.artificialNavBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
    self.artificialNavBar.backgroundColor = [UIColor whiteColor]; 
    UIBarButtonItem *bbiDone = [[UIBarButtonItem alloc] initWithTitle:@"Готово" style:UIBarButtonItemStyleDone target:nil action:nil]; 
    UIBarButtonItem *bbiTry = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:nil action:nil]; 
UINavigationItem *navItem = [[UINavigationItem alloc] init]; 

    navItem.leftBarButtonItem = bbiDone; 
    navItem.rightBarButtonItem = bbiTry; 

    self.artificialNavBar.items = @[ navItem ]; 
    [self.view addSubview:self.artificialNavBar]; 

はしかし、唯一の左のバーボタンが表示され、右の1が隠されています。私は何か見落としてますか?あなたはこれらすべてを書いた後、以下のコードを使用してコードを置き換えているこのクラスの.hファイルで

+0

は 'artificialNavBar'宣言を示します。 –

+0

@ Mr.UBプロパティ(非構造)UINavigationBar * artificialNavBar; –

+0

これも強くしてください。 –

答えて

1

宣言

@property (nonatomic, strong) UINavigationItem *navItem; 

self.artificialNavBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
self.artificialNavBar.backgroundColor = [UIColor whiteColor]; 
[self.view addSubview:self.artificialNavBar]; 

UIBarButtonItem *bbiDone = [[UIBarButtonItem alloc] initWithTitle:@"Готово" style:UIBarButtonItemStyleDone target:nil action:nil]; 
UIBarButtonItem *bbiTry = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:nil action:nil]; 

self.navItem = [[UINavigationItem alloc] init]; 
[self.navItem setLeftBarButtonItem:bbiDone animated:NO] 
[self.navItem setRightBarButtonItem:bbiTry animated:NO] 

[self.artificialNavBar setItems:@[self.navItem] animated:NO] 

であり、navbarが非原子性で強くていることを確認してください。

+0

ストーリーボードを使用していません。 –

+0

問題ありません。このコードを使用することができます。ちょうどiboutletを削除します。それは間違いでした。私は答えを更新しました –

+0

他のものを指定しなければ、私は試してみてください、btw、プロパティは、デフォルトで強いです。 –

関連する問題