我尝试在ModalView中添加tableView和TextField。我这样做了。我创建了新的View Controller并为它提供了
#import <UIKit/UIKit.h>
@protocol UYLModalViewControllerDelegate
-(void) buttonDonePassed :(NSArray *) variables;
@end
@interface UYLModalViewController : UIViewController <UITableViewDelegate>
{
id<UYLModalViewControllerDelegate> delegate;
IBOutlet UITableView *tblView;
IBOutlet UITextField *textField;
NSMutableArray *cellsArray;
//UITextField *textField;
}
@property (nonatomic, assign) id<UYLModalViewControllerDelegate> delegate;
@property (nonatomic, retain) IBOutlet UITableView *tblView;
@property (retain, nonatomic) IBOutlet UITextField *textField;
@end
和IN .m文件我创建函数
#pragma mark -
#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [cellsArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [cellsArray objectAtIndex:indexPath.row];
// Configure the cell.
return cell;
}
和ViewDidiLoad
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(buttonPassed:)];
//UITableView *tableView = [[UITableView alloc] init];
//[self]
cellsArray = [[NSMutableArray alloc] initWithObjects:@"one",@"two",@"three", nil];
[tblView reloadData];
}
但是我的程序没有转到TableViewDelegate方法(例如cellforrowAtIndexPath)
答案 0 :(得分:1)
您需要将UYLModalViewController
设为tableView
delegate
和datasource
。
看起来您正在使用Interface Builder
所以您需要:
control + click
并将其拖到File's Owner
datasource
。 delegate
注意强>
您的控制器还应符合UITableViewDatasource
给您:
@interface UYLModalViewController : UIViewController <UITableViewDelegate, UITableViewDatasource>
<强> 1 强>
<强> 2 强>
如果您愿意,可以在viewDidLoad
中的代码或您创建tableView
的任何地方执行此操作,如果您以编程方式执行此操作。
self.tableView.delegate = self;
self.tableView.datasource = self;