2012-10-12 35 views
6

Tôi có một ViewControllerA và một ViewControllerB. Tôi muốn gọi một phương thức của ViewControllerA từ ViewControllerB.Phương thức gọi từ một ViewController khác

Trong ViewControllerA hiện diện một phương pháp:

-(NSMutableArray*) loadData; 

Trong ViewControllerB.h:

#import "ViewControllerA.h" 
    ....... 
@property (nonatomic, strong) ViewControllerA * viewControllerA; 
@property (nonatomic, strong) NSMutableArray * mutableArray; 

Trong ViewControllerB.m:

self.mutableArray =[viewControllerA loadData]; 

nhưng phương pháp này không được gọi. Tại sao? Cảm ơn trước

+0

bạn có thêm chức năng vào tiêu đề của bộ điều khiển chế độ xem không? –

+0

Ý của bạn là cho phương thức trong viewControllerA là một phương thức lớp? –

Trả lời

7

Bạn đang thiếu

self. 

chừng nào ở đâu đó trong viewControllerB:

self.viewControllerA = [[viewControllerA alloc]init]; //or some other initialization occurs... 

thì:

self.mutableArray =[self.viewControllerA loadData]; 

sẽ làm việc.

+0

Cảm ơn bạn rất nhiều –

0

viewControllerA được cấp phát trong ViewControllerB trước khi gọi [viewControllerA loadData]?

0

Trong khi đẩy điều khiển B từ bộ điều khiển A..just định

viewControllerB.viewControllerA = self; 
[self.navigationController pushViewController:viewControllerB animated:YES]; 

và sau đó từ B gọi phương pháp A.The vấn đề mà bạn gặp phải là do không phân bổ và chỉ declaratio của "viewControllerA" mà bạn đã được tạo ra trong B.

4

Đảm bảo rằng phương thức loadData được chỉ định trong tệp tiêu đề của viewControllerB.

- (void)loadData; 

Sau đó, bây giờ bạn có thể gọi phương thức loadData.

[viewControllerA loadData]; 
Các vấn đề liên quan