0

だから、私はマスターディテールアプリケーションを持っています。これまでのところ、オブジェクトは起動時に作成され、マスターリストに追加されますが、詳細ビューも正常に機能します。

私がやりたいのは、ユーザーがボタンを押してマスターリストにオブジェクトを追加できるようにすることです。そのために新しいビューは必要ありませんが、この部分には標準の詳細ビューを使用したいと思います。

ユーザーが[追加]ボタンをタップすると、新しいオブジェクトが作成され、そのオブジェクトの詳細ビューに移動する必要があります。「ねぇ、標準のセグエも使ってみませんか?」と思いました。そこで、マスタービューにバーボタンアイテムを追加しました。

これはMasterViewController.mからの私のコードです:

-(IBAction)addNewItem:(UIStoryboardSegue *)segue{

    if([[segue identifier] isEqualToString:@"showDetail"]){

        CoolItem *newItem;
        NSDate *today = [NSDate date];
        newItem = [[CoolItem alloc]initWithDate:today];

        [self.dataController addCoolItemWithItem:newItem];
        DetailViewController *detailViewController = [segue destinationViewController];

        detailViewController.coolItem = newItem;


    }
}

「showDetail」は、マスター詳細テンプレートに付属する標準のセグエの識別子です。

結果:何もありません!このメソッドはボタンタップでは呼び出されません。

ボタンがこのメソッドに接続されていることを確認しました(ただし、ドキュメントのアウトラインにアンワインドセグエとして表示されます)。

何がうまくいかないかについてのアイデアはありますか?

4

1 に答える 1

0

何が問題なのかはわかりませんが、次のコードを使用して目的の機能を実現できました。

-(void)viewDidload {
      ...
      self.navigationItem.rightBarButtonItem = 
     [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd                                                                                                     
                            target:self
                            action:@selector(Add:)];    
}


-(IBAction)Add:(id)sender 
{
    // Create the new item and set it as active
    ...

    [self performSegueWithIdentifier: @"SegueName" sender:self];
}

これがヤロンに役立つことを願っています

于 2013-04-05T08:01:57.723 に答える