1

以下のように、ナビゲーションバーに戻るボタンと編集ボタンがあります ここに画像の説明を入力

編集ボタンをクリックした後、私は持っています

ここに画像の説明を入力

私の質問:編集モードのときに戻るボタンのクリックを無効にして、ユーザーが完了するまで前の画面に戻れないようにするにはどうすればよいですか.....

私がしようとしているのは

self.navigationItem.backBarButtonItem.enabled   =   NO;

ただし、戻るボタンは引き続きクリック可能です

PS:ナビゲーションバーに戻るボタンを追加する方法は

self.navigationItem.hidesBackButton             =   NO;

戻るボタンを非表示にすることはできますが、そのオプションは必要ありません...

この問題についてアドバイスをください。ここでコメントを歓迎します。

4

3 に答える 3

2

最善の解決策は、画面を離れるときに編集モードを終了し、最初に確認アラートを表示することです ([ UIAlertViewOK] と [キャンセル] の 2 つのボタンを使用)。

ただし、質問に答えるには、UIButton(画像を使用して) 戻るボタンと同じ外観の を作成する必要があります。UIBarButtonItemこのボタンをカスタム ビューとして作成し、で使用しますleftBarButtonItem(backBarButtonItemカスタム ビューを持つことはできません)。

次に、そのカスタム ビューenabledに設定できます。NO

編集:私は間違っていました。UIBarButtonItemプロパティを持っていenabledます。戻るボタンを無効にする際の問題は、おそらくbackBarButtonItem間違って無効にしていたためですnavigationItem。戻るボタンは常に、スタック内の前のコントローラーによって定義されます。

于 2012-05-24T14:32:19.013 に答える
1

ボタンがブロックされている場合は、非表示にする必要があります。私の観点では、応答しないボタンを持つことはユーザーにとって良くないからです。

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

    [UIView animateWithDuration:0.35f animations:^{
        self.navigationItem.hidesBackButton = editing;       
    }];
}
于 2012-05-24T13:46:07.167 に答える
0

self.navigationItem.backBarButtonItem.enabled = NO;

上記のコードを配置する場所。上記のコードを編集ボタンの IBAction メソッドに配置します。

于 2012-05-24T14:00:53.907 に答える