Метод делегата не доступен - PullRequest
1 голос
/ 13 января 2012

Я передаю некоторую информацию из одного представления в другое, используя делегаты, однако, когда я выбираю ячейку табличного представления, я передаю данные делегату, который передает информацию обратно в представление в стеке. в этом представлении, но на самом деле не входит в метод делегата, когда представления меняются ...

Вот где я настроил своего делегата.

subViewController.h

#import <UIKit/UIKit.h>

@protocol PassSubSearchData <NSObject>
@required
- (void) setModSearchFields:(NSArray *)modArray modIndexPath:(NSIndexPath *)modIndexPath setSubMod:(NSArray *)subModArray subModIndexPath:(NSIndexPath *)subModIndexPath;
@end

//...

//Delegate for passing Model and SubModel data back to VehicleSearchViewController
    id <PassSubSearchData> delegate;

//...

//Delegate for passing Model and SubModel data back to VehicleSearchViewController
@property (strong) id delegate;

// Вот как я это использую

subViewController.m

#import "MainViewController.h"
#import "SubViewController.h"

@implementation VehicleSubResultViewController


//...

//Delegate for passing Model and SubModel data back to VehicleSearchViewController
@synthesize delegate;

//...

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Access selected cells content (cell.textLabel.text)
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    //Predicates restrict the values that will be returned from the query
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@",@"SUB",cell.textLabel.text];
    filterArray = [parsedDataArrayOfDictionaries filteredArrayUsingPredicate:predicate];


    [[self delegate] setModSearchFields:tempModArray modIndexPath:tempModIndexPath setSubMod:filterArray subModIndexPath:indexPath];

    //This pops to the VehicleSearchViewController view
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];

}

Затем на главном экране

MainViewController.h

#import "SubViewController.h"

@interface VehicleSearchViewController : UITableViewController <PassSubSearchData> {
//...

MainViewController.m // Однако эта часть кода никогда не доступна

- (void) setModSearchFields:(NSArray *)modArray modIndexPath:(NSIndexPath *)modIndexPath setSubMod:(NSArray *)subModArray subModIndexPath:(NSIndexPath *)subModIndexPath
{
    modObjectString = [[modArray valueForKey:@"MOD"] objectAtIndex:0];
    modIndexPath = modIndexPath; // Sets the selected IndexPath from the subview

    subModObjectString = [[modelArray valueForKey:@"SUBMODEL"] objectAtIndex:0];
    subModIndexPath = subModResultIndexPath; // Sets the selected IndexPath from the subview

    NSLog(@"%@", modObjectString);
    NSLog(@"%@", modIndexPath);
    NSLog(@"%@", subModObjectString);
    NSLog(@"%@", subModIndexPath);


    [self.tableView reloadData]; 
}

Так вот, я просто не уверен, что мне не хватает, если кто-нибудь знает, что любая помощь будет признательна.

1 Ответ

4 голосов
/ 13 января 2012

Скорее всего, делегат никогда не был установлен, поэтому он равен нулю и ничего не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...