我对iOS SDK很陌生,但我一直在尝试使用UITableViewController作为另一个VC的委托。问题是一个更大的应用程序的一部分,但我在下面简化了它,我尝试让UITableViewController在第二个VC上按下“Done”后关闭第二个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”方法。
答案 0 :(得分:0)
如果您使用的是故事板,则应使用展开segue。这是一种在没有委托的情况下解雇模态UIViewController
的简单方法。 Here is a good tutorial on unwind segues