UINavigationController

UINavigationController

我需要将数组传递给我的父视图控制器,但我不确定该怎么做。我是使用委托的唯一选择吗?我的应用程序崩溃了:

[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

最佳答案

您的答案就在您的问题中:)。

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


使用UINavigationController层次结构时,父视图控制器是UINavigationController,而不是您以前的视图控制器。

如果要使用该视图控制器,请通过调用[self.parentViewController viewControllers]向UINavigationController询问其视图控制器列表,然后可以使用isKindOfClass:在该NSArray中循环确定哪个是您的。

在这种情况下,或者您建议的委托,NSNotification也可以工作。

关于objective-c - 将数组传递给导航类型应用程序中的父 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6171432/

10-13 05:07