Ciao per fare comunicare 2 view sto usando un protocollo in pratica al click di un pulsante il protocollo dovrebbe chiamare un metodo e passare un valore all'altra view in modo che venga aggiunta una nuova riga nella TableView, il pulsante da solo funziona ma non chiama il metodo infatti non fa neanche il log eppure mi sembra che non manca niente
non so perchè questo protocollo non funziona non da errore pero non fa neanche il log
questo è il codice
.h della view dove c'è il pulsante
#import <UIKit/UIKit.h>
#import "InsertDelegate.h"
__weak id <InsertDelegate> _delegate;
@interface DownloadViewController : UIViewController<UITextViewDelegate, UITextFieldDelegate, UITableViewDataSource,UITableViewDelegate>
@property(nonatomic,weak) id <InsertDelegate> delegate;
@property (strong, nonatomic) UIWindow *window;
-(IBAction)startDownload:(id)sender;
@end
questo è il .m sempre della view con il pulsante
#import "DownloadViewController.h"
#import "MyBooxViewViewController.h"
#import "ViewController.h"
#import "XMLReader.h"
#import "InsertDelegate.h"
@interface DownloadViewController ()
@end
@implementation DownloadViewController
@synthesize delegate = _delegate;
//... altro codice funzionante
metodo chiamato al click del pulsante
-(IBAction)startDownload:(id)sender{
//... altro codice funzionante
//questa è la chiamata del metodo tramite protocollo che passa anche un parametro - un array
[self.delegate insertNewFruit:titolo];
MyBooxViewViewController *viewController4 = [[MyBooxViewViewController alloc]init];
[self.navigationController pushViewController:viewController4 animated:YES];
}
questo è il protocollo si chiama InsertDelegate.h
#import <Foundation/Foundation.h>
@protocol InsertDelegate <NSObject>
-(void)insertNewFruit:(NSMutableArray *)argx;
@end
e questo è il codice della view dove sta la tabella e il metodo chiamato dal pulsante tramite il protocollo
#import "MyBooxViewViewController.h"
#import "ViewController.h"
#import "InsertDelegate.h"
@interface MyBooxViewViewController()
@end
@implementation MyBooxViewViewController
@synthesize tableView = _tableView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
CGRect tableViewFrame = [[UIScreen mainScreen] bounds];
_tableView = [[UITableView alloc] initWithFrame:tableViewFrame style:UITableViewStylePlain];
[_tableView setDelegate:self];
[_tableView setDataSource:self];
[self.view addSubview:_tableView];
allMyBooks = [[NSMutableArray alloc] init];
[allMyBooks addObject:@"codice-libero-free-as-in-"];
self.view.backgroundColor = [UIColor yellowColor];
}
return self;
}
//altro codice funzionante
//questo è il metodo che viene chiamato tramite protocollo al click del pulsante - non fa neanche il log
- (void)insertNewFruit:(NSMutableArray *)argx
{
NSLog(@"Nuovo frutto!");
[allMyBooks addObject:@"codice"];
[allMyBooks addObject:@"hacker"];
[allMyBooks addObject:@"Hack_2.0"];
[_tableView reloadData];
}
questo è il .h della view con la tabella
#import <UIKit/UIKit.h>
#import "InsertDelegate.h"
@interface MyBooxViewViewController :UIViewController <InsertDelegate, UITableViewDataSource,UITableViewDelegate>
{
NSMutableArray *allMyBooks;
}
@property (strong, nonatomic) UITableView *tableView;
- (void)insertNewFruit:(NSMutableArray *)argx;
@end
non da errore ma non fa neanche il log non capisco perchè non funziona
grazie dell'aiuto