我是objective-c的新手,也许我还没有非常清楚地了解委托的概念,但我希望通过使用它来做到这一点。我正在尝试在我的应用程序中实施委托。
想法是我有TableViewController
用于NSMutableArray
初始化TableView
的类。我需要从我的DropDown
班级重新初始化这个数组。我尝试使用委托来做到这一点,但还没有做到,也许它有问题。我可以通过对象传递TableViewController
给DropDown
班级并编辑表格。但我想使用委托来完成它。
这是我的TableViewController.h
@protocol TableViewControllerdelegate;
@interface TableViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,MFMessageComposeViewControllerDelegate>
{
ControllerType controllerType;
}
@property (retain, nonatomic) IBOutlet UITableView *tableView;
@property (retain, nonatomic) NSMutableArray *dataArray;
@property (retain, nonatomic) NSArray *imageArray;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andType:(ControllerType)type;
- (void)sendSMS: (NSString *) sms;
@end;
这是我的DropDown.h
#import "TableViewController.h"
@interface DropDownExample : UITableViewController <VPPDropDownDelegate, UIActionSheetDelegate> {
@private
VPPDropDown *_dropDownSelection;
VPPDropDown *_dropDownSelection1;
VPPDropDown *_dropDownSelection2;
VPPDropDown *_dropDownSelection3;
VPPDropDown *_dropDownSelection4;
VPPDropDown *_dropDownDisclosure;
VPPDropDown *_msg;
VPPDropDown *_dropDownCustom;
NSIndexPath *_ipToDeselect;
}
+ (bool) uncheck:(UITableViewCell *) cell andData:(NSString *) data;
- (void)reloadData;
@end
这就是我尝试编辑我的 tableview 对象数组的方式
TableViewController *newControll = (TableViewController*)[UIApplication sharedApplication].delegate;
NSMutableArray *arrayWithInfo = [[NSMutableArray alloc] initWithObjects:AMLocalizedString(@"Status", nil),AMLocalizedString(@"Call", nil),AMLocalizedString(@"Location", nil),AMLocalizedString(@"Control", nil),AMLocalizedString(@"Sim", nil),AMLocalizedString(@"Object", nil),AMLocalizedString(@"Info", nil),nil];
newControll.dataArray = arrayWithInfo;
[arrayWithInfo release];
[newControll.tableView reloadData];
我让它运行,但它'-[AppDelegate setDataArray:]: unrecognized selector sent to instance
在达到此代码后运行。