ModalView中的表视图控制器和TextField

时间:2012-01-15 01:48:06

标签: objective-c ios ipad tableview modalviewcontroller

我尝试在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)

1 个答案:

答案 0 :(得分:1)

您需要将UYLModalViewController设为tableView delegatedatasource


看起来您正在使用Interface Builder所以您需要:

    在tableView上
  1. control + click并将其拖到File's Owner
  2. 然后从HUD菜单中选择datasource
  3. 然后重复此过程,但选择delegate
  4. 注意
    您的控制器还应符合UITableViewDatasource给您:

    @interface UYLModalViewController : UIViewController <UITableViewDelegate, UITableViewDatasource>
    

    <强> 1

    enter image description here

    <强> 2

    enter image description here


    如果您愿意,可以在viewDidLoad中的代码或您创建tableView的任何地方执行此操作,如果您以编程方式执行此操作。

    self.tableView.delegate   = self;
    self.tableView.datasource = self;