3

Modal Segue を使用して UIViewController を提示しています。この UIViewController は UINavigationBar を継承し、ナビゲーション バーの左側に UIBarButtonItem を設定しました。

助けて!!!

私の問題は、提示された UIViewController の viewWillAppear メソッドが呼び出されたときに、UIBarButtonItem を非表示にしようとしているのに、UIBarButtonItem が常に表示されることです。myCancelButton という名前の UIViewController の UIBarButtonItem を宣言し、それを Interface Builder で参照しました。

これまでに試したことは次のとおりです(すべて機能しません):

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.navigationItem.leftBarButtonItem = nil;
    self.navigationItem.backBarButtonItem = nil;
    self.myCancelButton = nil;

    NSMutableArray *barButtonItems = [self.navigationItem.leftBarButtonItems mutableCopy];
    [barButtonItems removeObject:self.myCancelButton];
    self.navigationItem.leftBarButtonItems = barButtonItems;

    [self.navigationItem.leftBarButtonItems delete:self.myCancelButton];

    self.navigationController.navigationItem.leftBarButtonItem = nil;
    barButtonItems = [self.navigationController.navigationItem.leftBarButtonItems mutableCopy];
    [barButtonItems removeObject:self.myCancelButton];
    self.navigationController.navigationItem.leftBarButtonItems = barButtonItems;

    [self.navigationController.navigationItem.leftBarButtonItems delete:self.myCancelButton];

    [self.myCancelButton setWidth:0.01];

    self.navigationItem.hidesBackButton = TRUE;

    //Even setting enabled to false doesn't work:
    [self.myCancelButton setEnabled:FALSE];
}
4

2 に答える 2

1

これはうまくいくはずです。

[self.navigationItem setHidesBackButton:YES animated:YES];
于 2013-03-06T02:42:27.533 に答える
0

こいつを使ってみる

self.navigationController.navigationItem.leftBarButtonItem = nil;
[self.navigationController.navigationItem setHidesBackButton:YES];
于 2013-03-06T07:04:28.547 に答える