Передача массива в родительский контроллер представления в приложении типа навигации - PullRequest
1 голос
/ 30 мая 2011

Мне нужно передать массив моему родительскому контроллеру представления, и я не уверен, как это сделать.Является ли мой единственный выбор использовать делегата?Мое приложение падает на линии:

[self.parentViewController setrecipientItems:remoteRecipientItems];

с сообщением:

[UINavigationController setrecipientItems:]: нераспознанный селектор, отправленный экземпляру 0x8a10ab0

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {



    int newRow = [indexPath row];
    int oldRow = (lastIndexPath !=nil)?[lastIndexPath row]:-1;

    if (newRow != oldRow) {
        UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
        newCell.accessoryType = UITableViewCellAccessoryCheckmark;

        UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:lastIndexPath];

        oldCell.accessoryType = UITableViewCellAccessoryNone;

        //  lastIndexPath = indexPath;
        lastIndexPath = [indexPath retain];


    }

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // UIViewController may not respond to setrecipientItems: warning
    [self.parentViewController setrecipientItems:remoteRecipientItems]; 

    [[self.parentViewController.] ]


    [self.navigationController popViewControllerAnimated:YES];


}

Также мой родительский UIViewController настроен так:

#import <UIKit/UIKit.h>


@interface AddRecipientsTableViewController : UITableViewController {
NSMutableArray *recipientItems;
}
@property(nonatomic,retain)NSMutableArray *recipientItems;



@end

1 Ответ

1 голос
/ 30 мая 2011

Ваш ответ на ваш вопрос:).

[UINavigationController setrecipientItems:]: unrecognized selector sent to instance 0x8a10ab0

При использовании иерархии UINavigationController родительским контроллером представления является UINavigationController, а не ваш предыдущий контроллер представления.

ЕслиВы хотите получить в этом контроллере представления, спросите UINavigationController для его списка контроллеров представления, вызывая [self.parentViewController viewControllers], и затем вы можете циклически пройти через этот NSArray, используя isKindOfClass:, чтобы определить, какой из них ваш.

AnNSNotification может также работать в этом случае или, как вы предлагаете, делегат.

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