0

保存ボタンがタップされたときに簡単protocolに通知できるように使用しているため、によって閉じることができます。delegateVC2view controllerpopViewControllerAnimatedVC1

VC2に確認する がprotocolあります。VC1

VC2.h

#import <UIKit/UIKit.h>

@class VC2;

@protocol VC2Delegate <NSObject>

- (void)saveBtnWasTpdOnVC2:(VC2 *)controller;

@end

@interface VC2 : UITableViewController

@property (weak, nonatomic) id <VC2Delegate> delegate;

- (IBAction)saveBtnTpd:(id)sender;

@end

VC2.m

- (IBAction)saveBtnTpd:(id)sender
{
    NSLog(@"save tapped");
    [self.delegate saveBtnWasTpdOnVC2:self];
}

VC1.m

- (void)saveBtnWasTpdOnVC2:(VC2 *)controller
{
    NSLog(@"saveBtnWasTpd"); // I don't see this NSLog!
    [controller.navigationController popViewControllerAnimated:YES];
}

お役に立てれば幸いです。

4

3 に答える 3

0

<VC2Delegate>vc1.h ファイルで行ったことを確認し、vc2.delegate = self;

于 2013-03-11T08:36:29.200 に答える
0

VC2 は、VC1 がデリゲートであることをどのように認識しましたか? ビューを VC2 にプッシュする場合は、デリゲートを VC1 に設定する必要があります。また、VC1 は以前にインスタンス化され、VC2 の存続期間全体にわたってアクティブである必要があります。

于 2013-03-11T08:33:02.043 に答える
0

VC1.mにこの行を追加するのを忘れたと思います

[vc2Object setDelegate:self];

また、VC2 オブジェクトをデリゲート メソッドに送り返すのはなぜですか?

プロトコルに確認していれば、VC2のオブジェクトがあるはずです。VC2 オブジェクトのデリゲートを VC1 オブジェクトに設定する必要があります。

于 2013-03-11T08:35:13.080 に答える