0
我很新的iOS SDK,但我一直在嘗試使用UITableViewController作爲另一個VC的委託。問題是一個更大的應用程序的一部分,但我簡化了下面,我試圖讓UITableViewController關閉第二個VC,一旦在第二個VC上按下「完成」。UITableViewController不能作爲另一個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];
}
它的工作原理如果主不是一個UITableViewController。我注意到,「完成」在觸摸時被識別,但「doneEditing」方法從未被調用過。
您是否將表視圖控制器設置爲SecondViewController的委託? – rdelmar
是的,如MainViewController.h所示。我之前和委託人一起工作過,但由於某種原因,它沒有使用UITableViewController。 –
添加屬性與在運行時設置委託實例不同。我懷疑如果你在'[self.delegate doneEditing]'設置了一個斷點,你會發現'self.delegate'實際上是零。 – mbm29414