2014-10-29 28 views
0

我有兩個類DetailViewController和FactTableViewController。我想從FactTableViewController的DetailViewController中調用reloadData方法。下面的代碼編譯並執行,但reloadData永遠不會從FactTableViewController調用。Xcode:objective c不能調用另一個類的方法

DetailViewController.m 
//.... 
-(void) reloadData 
{ 
    //code to refresh data 
    NSLog(@"reloadData"); 
} 

FactTableViewController.h 
#import "DetailViewController.h" 
//... 

FactTableViewController.m 
@interface FactTableViewController() 
@property (assign,nonatomic) DetailViewController *delegate; 
@end 

@implementation FactTableViewController 
//... 
@synthesize delegate = _delegate; 
//... 
@end 

//... 
-(void) doneButton:(UIBarButtonItem *) sendor 
{ 
     NSLog(@"doneButton pressed"); //this gets called 
     [_delegate performSelector:@selector(reloadData)]; //this does not get called 
} 

//... 
+1

你如何實例化'DetailViewController *委託'? – esqew 2014-10-29 15:04:52

+0

注意:'@ synthesisize'不是必需的,幾年來一直不需要。另外Xcode不會調用任何東西,它是一個IDE(花式代碼編輯器)。 – zaph 2014-10-29 15:09:09

+0

我是新來的ios開發和*委託沒有獲得初始化。應該* delegate被實例化爲:delegate = [[DetailViewController alloc] init]; – Chuck 2014-10-29 15:16:04

回答

0

好的,我找到了答案。感謝上面的建議我初始化委託給DetailViewController,它現在可以工作。