私は iOS SDK にまったく慣れていませんが、UITableViewController を別の VC のデリゲートとして使用しようとしています。問題はより大きなアプリケーションの一部ですが、2番目のVCで「完了」が押されるとUITableViewControllerが2番目のVCを却下するように、以下に簡略化しました。
MainViewController.h (UITableViewController)
#import <UIKit/UIKit.h>
#import "SecondViewController.h"
@interface MainViewController : UITableViewController <SecondViewControllerDelegate>
@end
MainViewController.m
- (void)doneEditing {
[self dismissViewControllerAnimated:YES completion:nil];
}
SecondViewController.h
#import <UIKit/UIKit.h>
@class SecondViewController;
@protocol SecondViewControllerDelegate <NSObject>
- (void)doneEditing;
@end
@interface SecondViewController : UIViewController
@property (weak, nonatomic) id <SecondViewControllerDelegate> delegate;
- (IBAction)done:(id)sender;
@end
SecondViewController.m
- (IBAction)done:(id)sender {
[self.delegate doneEditing];
}
Main が UITableViewController でない場合に機能します。タッチすると「完了」が認識されることに気付きましたが、「doneEditing」メソッドは呼び出されません。