Iphone 尝试通过点击“使用委派取消”关闭视图控制器(根本不工作)

Iphone 尝试通过点击“使用委派取消”关闭视图控制器(根本不工作),iphone,uiviewcontroller,delegation,popviewcontroller,Iphone,Uiviewcontroller,Delegation,Popviewcontroller,在导航控制器中具有两个视图控制器: PhoneNumbersTVC>保存由NewPhoneNumberTVC NewPhoneNumberTVC>用于添加电话号码的控制器 当我点击NewPhoneNumberTVC上的取消按钮时,我想返回phoneNumberTVC,并进行如下授权 电话号码tvc.h #import <UIKit/UIKit.h> #import "NewPhoneNumberTVC.h" @interface PhoneNumbersTVC : UITableV

在导航控制器中具有两个视图控制器:

PhoneNumbersTVC
>保存由
NewPhoneNumberTVC
NewPhoneNumberTVC
>用于添加电话号码的控制器

当我点击
NewPhoneNumberTVC
上的取消按钮时,我想返回
phoneNumberTVC
,并进行如下授权

电话号码tvc.h

#import <UIKit/UIKit.h>
#import "NewPhoneNumberTVC.h"

@interface PhoneNumbersTVC : UITableViewController <NewPhoneNumberTVCDelegate>

@end
#import <UIKit/UIKit.h>

@class NewPhoneNumberTVC;

@protocol NewPhoneNumberTVCDelegate <NSObject>

- (void)saveBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC;
- (void)cancelBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC;

@end


@interface NewPhoneNumberTVC : UITableViewController

@property (weak, nonatomic) id <NewPhoneNumberTVCDelegate> delegate;
@property (strong, nonatomic) NSManagedObjectContext *managedOC;

@property (weak, nonatomic) IBOutlet UITextField *phoneNumberTextField;

- (IBAction)saveBtnTapped:(UIBarButtonItem *)sender;
- (IBAction)cancelBtnTapped:(UIBarButtonItem *)sender;

@end
新电话号码vc.h

#import <UIKit/UIKit.h>
#import "NewPhoneNumberTVC.h"

@interface PhoneNumbersTVC : UITableViewController <NewPhoneNumberTVCDelegate>

@end
#import <UIKit/UIKit.h>

@class NewPhoneNumberTVC;

@protocol NewPhoneNumberTVCDelegate <NSObject>

- (void)saveBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC;
- (void)cancelBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC;

@end


@interface NewPhoneNumberTVC : UITableViewController

@property (weak, nonatomic) id <NewPhoneNumberTVCDelegate> delegate;
@property (strong, nonatomic) NSManagedObjectContext *managedOC;

@property (weak, nonatomic) IBOutlet UITextField *phoneNumberTextField;

- (IBAction)saveBtnTapped:(UIBarButtonItem *)sender;
- (IBAction)cancelBtnTapped:(UIBarButtonItem *)sender;

@end
}


当我点击
NewPhoneNumberTVC
上的cancel时,我看到上面的方法
CancelBTantaped
启动,但是
委派
不起作用,没有
方法在
PhoneNumberTvc
中执行。视图没有消失,我也没有看到:
console上的
cancelBtnWasTappedOnNewPhoneNumberTVC
。例如,PhoneNumbersTVC.m中应该存在一些代码:

NewPhoneNumberTVC *myNewPhoneNumberTVC = [[NewPhoneNumberTVC alloc] init];
myNewPhoneNumberTVC.delegate = self;
您可以按以下方式登录以验证是否成功设置了委托“

NewPhoneNumberTVC.m

- (void)saveBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC
{
    NSLog(@"saveBtnWasTappedOnNewPhoneNumberTVC");
    [newPhoneNumberTVC.navigationController popViewControllerAnimated:YES];
}

- (void)cancelBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC
{
    NSLog(@"cancelBtnWasTappedOnNewPhoneNumberTVC");
    [newPhoneNumberTVC.navigationController popViewControllerAnimated:YES];
}
- (IBAction)cancelBtnTapped:(UIBarButtonItem *)sender
{
    NSLog(@"cancelBtnTapped");
    self.phoneNumberTextField.text = @"";
    self.phoneKindTextField.text = @"";
    [self.delegate cancelBtnWasTappedOnNewPhoneNumberTVC:self];
- (IBAction)cancelBtnTapped:(UIBarButtonItem *)sender
{
NSLog(@"cancelBtnTapped");
self.phoneNumberTextField.text = @"";
self.phoneKindTextField.text = @"";
NSLog(@"self.delegate :%@",self.delegate);
[self.delegate cancelBtnWasTappedOnNewPhoneNumberTVC:self];
}

你确定你已经设置了代理吗?如果是,你在什么时候设置代理?你在哪里设置了NewPhoneNumberTVC的代理?@lu yuam我告诉代理在方法中点击了取消:
cancelBtnTapped
[self.delegate cancelBtnWasTappedOnNewPhoneNumberTVC:self]我自己刚找到的。完全忘了。谢谢!