1

セル内の既存のテキストを編集するために、テーブル ビュー セルに詳細開示ボタンを実装しました。しかし、問題は、詳細開示ボタンをクリックすると、既存のテキスト フィールドが表示されますが、上部に「編集」および「キャンセル」バー ボタン項目がないことです。セグエ識別子名を「EditItem」として指定しました。「AddItem」という名前の別のセグエもあり、これは正しく機能し、「編集」および「キャンセル」バー ボタン項目を表示します。問題を見つけるためにコードを何度もチェックしましたが、解決策は見つかりませんでした。この問題を解決する方法を知りたいです。

Xcode 6 beta 6 SDK を使用しています。

4

1 に答える 1

1

問題は、アイテムを編集するのと同じ方法でアイテムを追加していないことです。これを見てください:

if ([segue.identifier isEqualToString:@"AddItem"]){
        UINavigationController *navigation = segue.destinationViewController;
        AddItemViewController *controller =(AddItemViewController *) navigation.topViewController;
        controller.delegate = self;
    } else if ([segue.identifier isEqualToString:@"EditItem"]){
        UINavigationController *navigation = segue.destinationViewController;
        AddItemViewController *controller = (AddItemViewController *)navigation;
        controller.delegate = self;

        //
        NSIndexPath *indexpath = [self.tableView indexPathForCell:sender];
        controller.itemToEdit = _items[indexpath.row];

    }

AddItemセグエでは、次のようなビュー コントローラーを取得していることに注意してください。

AddItemViewController *controller =(AddItemViewController *) navigation.topViewController;

しかし、EditItemセグエの場合、次のようになります。

AddItemViewController *controller =(AddItemViewController *) navigation;

ストーリーボードでは、AddItemセグエはナビゲーション コントローラーに接続され、次に に接続されますAddViewControllerが、EditItemセグエは に直接移動しAddViewControllerます。

接続EditItem先と同じナビゲーション コントローラAddItemに接続すると、問題が解決するはずです。

于 2014-09-12T18:42:41.213 に答える