.m 文件中未访问 UITableViewCell 中的标签

Posted

技术标签:

【中文标题】.m 文件中未访问 UITableViewCell 中的标签【英文标题】:Label in UITableViewCell is not getting accessed in .m file 【发布时间】:2016-08-05 13:59:48 【问题描述】:

我的视图控制器中有一个表格视图。我使用了一个原型单元,在其中创建了一个标签并将其连接到 tableVieCell.h 文件。问题是当我尝试访问视图中的标签以使用文本字段输入加载它时,我没有得到标签组件。请检查。这是我的 MyCell.h 文件。

#import <UIKit/UIKit.h>
@interface MyCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UILabel *label1;
@property (strong, nonatomic) IBOutlet UILabel *label2;
@property (strong, nonatomic) IBOutlet UITextField *celltextField;
@end

这是我的 viewController.h 文件。

#import <UIKit/UIKit.h>
#import "MyCell.h"


@interface ViewController :UIViewController<UITableViewDelegate,UITableViewDataSource>

NSMutableArray *contacts;


- (IBAction)leftBtn:(id)sender;
- (IBAction)rightBtn:(id)sender;
- (IBAction)nextBtn:(id)sender;

- (IBAction)SendBtn:(id)sender;
@property (strong, nonatomic) IBOutlet UITableView *tabV1;

@property (strong, nonatomic) IBOutlet UITextField *txtField;
@end




#import "ViewController.h"


@interface ViewController ()

    MyCell *cell;

@end

@implementation ViewController




- (void)viewDidLoad 

    contacts= [[NSMutableArray alloc]init];
    [super viewDidLoad];
    

        -(BOOL)textFieldShouldReturn:(UITextField *) textField
        [textField resignFirstResponder];
        return YES;
    

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:    (NSInteger)section

    return contacts.count;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

//    [cell.zoomButton addTarget:self action:@selector(navigateAction:) forControlEvents:UIControlEventTouchUpInside];
//    cell.zoomButton.tag=indexPath.row;

    cell= [[MyCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
if (cell == nil)

    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];



//    cell.textLabel.text=contacts[indexPath.row];
   cell.label2.text=[contacts objectAtIndex:indexPath.row];
return cell;



- (IBAction)leftBtn:(id)sender 


- (IBAction)rightBtn:(id)sender 

- (IBAction)nextBtn:(id)sender 

-(void)someMethod:(UIButton *)sender

- (IBAction)SendBtn:(id)sender 
//    if (_leftBtn.tag==1) 
//        cell.label1.text=_txtField.text;
//        
//    else
//        cell.label2.text=_txtField.text;
//    
[self->contacts addObject:_txtField.text];
//    label2.text=_txtField.text;
[_tabV1 reloadData];

_txtField.text=@"";

@end

【问题讨论】:

请提供代码,只有这么多信息很难帮助您。 当然。实际上,我的故事板中有一个 tableView。我拿了一个单元格并为其分配了 tableViewCell 类。我在那个单元格中放置了一个标签。现在我在表格视图之外有一个文本字段。我希望在文本字段中输入的文本出现在标签中。 @Florian Koch 你现在收到了吗? 对不起,我只是想给你一个关于如何改进你的问题的提示,以便其他人更容易帮助你 - 我没有 ios 开发经验,所以很遗憾我不能亲自帮助您 @Florian Koch。没问题。谢谢 【参考方案1】:

改变这个

cell= [[MyCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
if (cell == nil)

    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];

到这里

MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

【讨论】:

如果我改变它...我可以访问 controller.m 文件中单元格的标签吗? @k.mand 为什么当它给你带来错误时你将它标记为解决方案? @k.mand : 你在执行 Warif 推荐的代码时遇到了什么样的错误?确保您已在视图控制器中导入 #import "MyCell"。因为上面的代码应该可以正常工作。并检查您为原型单元设置的“标识符”是否为“单元”,并检查您是否已在情节提要中将原型单元的类设置为“MyCell”。然后再试一次。 @Bharath 我有一些疑问。如果你有时间请联系我 kalyanimandadi93@gmail.com。请。

以上是关于.m 文件中未访问 UITableViewCell 中的标签的主要内容,如果未能解决你的问题,请参考以下文章

uiTableviewcell 中未调用 UicollectionView didSelectItemAtIndexPath

在 UITableViewCell 中未检测到点击手势

iOS 9 中未调用 UITableViewCell 中的 IBAction

从 UITableViewCell 访问新的 UIViewController

在访问 vba 的 excel 文件中未启用显示警报

在 codeigniter 中未访问 home.php