ナビゲーション コントローラー内に 2 つのビュー コントローラーがある場合:
PhoneNumbersTVC
> によって追加された電話番号のリストを保持 > 電話番号を追加するNewPhoneNumberTVC
NewPhoneNumberTVC
ためのコントローラー
キャンセルをタップすると、次のように委任NewPhoneNumberTVC
に戻るのが好きです。PhoneNumbersTVC
PhoneNumbersTVC.h
#import <UIKit/UIKit.h>
#import "NewPhoneNumberTVC.h"
@interface PhoneNumbersTVC : UITableViewController <NewPhoneNumberTVCDelegate>
@end
PhoneNumbersTVC.m
- (void)saveBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC
{
NSLog(@"saveBtnWasTappedOnNewPhoneNumberTVC");
[newPhoneNumberTVC.navigationController popViewControllerAnimated:YES];
}
- (void)cancelBtnWasTappedOnNewPhoneNumberTVC:(NewPhoneNumberTVC *)newPhoneNumberTVC
{
NSLog(@"cancelBtnWasTappedOnNewPhoneNumberTVC");
[newPhoneNumberTVC.navigationController popViewControllerAnimated:YES];
}
NewPhoneNumberTVC.h
#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.m
- (IBAction)cancelBtnTapped:(UIBarButtonItem *)sender
{
NSLog(@"cancelBtnTapped");
self.phoneNumberTextField.text = @"";
self.phoneKindTextField.text = @"";
[self.delegate cancelBtnWasTappedOnNewPhoneNumberTVC:self];
}
キャンセルをタップするとNewPhoneNumberTVC
、上記のメソッドcancelBtnTapped
が起動するがdelegation
機能しないことがmethod
わかりPhoneNumbersTVC
ます。ビューが消えず、表示されません: cancelBtnWasTappedOnNewPhoneNumberTVC
on console
。