2013-08-27 30 views
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」方法從未被調用過。

+0

您是否將表視圖控制器設置爲SecondViewController的委託? – rdelmar

+0

是的,如MainViewController.h所示。我之前和委託人一起工作過,但由於某種原因,它沒有使用UITableViewController。 –

+0

添加屬性與在運行時設置委託實例不同。我懷疑如果你在'[self.delegate doneEditing]'設置了一個斷點,你會發現'self.delegate'實際上是零。 – mbm29414

回答

相關問題