2013-09-08 2 views
-1

Привет, в этом коде протокол RefreshLibraryDropBoxDelegate не работает, не вызывает метод refreshLibrary в WVdALibraryDocumentViewController. Зачем?Делегат не работает

WVdADropboxViewController.h:

#import <UIKit/UIKit.h> 
#import <DropboxSDK/DropboxSDK.h> 

@protocol RefreshLibraryDropBoxDelegate <NSObject> 
@optional 

-(void)refreshLibrary; 

@end 

@interface WVdADropboxViewController : UIViewController <DBRestClientDelegate, UITableViewDataSource, UITableViewDelegate> 
{ 
id <RefreshLibraryDropBoxDelegate> delegate; 
} 

//delegate 
@property (assign) id <RefreshLibraryDropBoxDelegate> delegate; 

WVdADropboxViewController.m:

- (void)restClient:(DBRestClient *)client loadedFile:(NSString *)destPath 
{ 
NSLog(@"upload complete"); 
[self.delegate refreshLibrary]; 
[[self navigationController] popViewControllerAnimated:YES]; 
} 

WVdALibraryDocumentViewController.h:

#import <UIKit/UIKit.h> 
#import "WVdACustomCell.h" 
#import "WVdAViewController.h" 
#import <QuartzCore/QuartzCore.h> 
#import "WVdADropboxViewController.h" 


@interface WVdALibraryDocumentViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, RefreshLibraryDropBoxDelegate> 
-(void)refreshLibrary; 

WVdALibraryDocumentViewController.m:

// REFRESH LIBRARY // 
-(void)refreshLibrary 
{ 
    NSLog(@"refresh"); 
    [self getDataArrayDocumentFiles]; 
} 

ответ

1

Вам не нужна эта линия

{ 
id <RefreshLibraryDropBoxDelegate> delegate; 
} 

Затем в WVdALibraryDocumentViewController

вам нужно установить в viewDidLoad, или где-то еще

WVdADropboxViewController *myCoolController = [WVdADropboxViewController new]; 
myCoolController.delegate = self; 

Он должен работать!

+0

спасибо, я попробую позже –

0

Я думаю, вы можете установить делегата внутри вашего WVdALibraryDocumentViewController.m.

В вашем viewDidLoad в WVdALibraryDocumentViewController:

wVdADropboxViewController.delegate = self; 
Смежные вопросы