ios - 从发件人 iOS 访问 UITableViewCell label.text

标签 ios uitableview sender

我有一个 UITableView,它以编程方式加载每个单元格的内容。具体来说,它会绘制一个名为 nameLabelUILabel,并使用从我们的服务器获取的一些文本设置 label.text 属性。我有一个 UIButton,然后以编程方式在 UILabel 上绘制,这样当用户点击文本时,它会触发一个 @selector 方法,如下所示:

- (void) nameButtonInvoked:(id)sender
{
    NSLog(@"nameButton Clicked..");

    UIViewController *nameView = [self.storyboard instantiateViewControllerWithIdentifier:@"namePageView"];
    [self presentViewController:nameView animated:YES completion:nil];

}

我想将 nameLabel 中的实际文本传递给呈现的 ViewController,nameView,我将使用 prepareForSegue 来完成。但要做到这一点,我需要使用 sender< 从 @selector 方法访问该编程 UILabel.text 属性/strong>,或者我需要通过检测正在使用的单元格以某种方式将全局变量设置为等于该标签的文本。由于 UIButton 是发件人,我假设我可能必须使 UILabel 像带有 touchUpInsideEvent 的按钮一样工作,以便我可以通过发件人访问标签的文本属性.我该怎么做?

目前我有一个名为 selectedNameString 的全局变量,我需要将其设置为等于 nameLabel.text,这需要在 @selector 方法中完成,以便我的 prepareForSegue 方法可以通过数据到下一个 VC。

最佳答案

您可以简单地向您的标签添加一个 Tap 手势识别器,并使用您的情况不需要的按钮调用您当前正在调用的方法。

[ self.nameLabel addGestureRecognizer:[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(nameButtonInvoked:)];

并且您可以在 [sender view] 的文本的帮助下访问 UILabel 的关联文本:

- (void) nameButtonInvoked:(id)sender
{
    NSLog(@"nameButton Clicked..");
    [self performSegueWithIdentifier:@"MySegue" sender:sender];
}

假设您已经在 Storyboard中标记了从当前 View Controller 到“namePageView” View Controller 的转场,并将转场的标识符设置为“MySegue”。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"MySegue"]) {

        // Get destination view(your namePageView view controller)
        SecondView *vc = [segue destinationViewController];

        // Get your label text here
        NSString* labelText=((UILabel*)[sender view]).text;

         // Pass the information to your destination view
         [vc setSelectedText:labelText];
    }
}

此外,您必须在“namePageView” View Controller 中有一种方法来获取您传递的文本,如下所示:

-(void)setSelectedText:(NSString*)text;

关于ios - 从发件人 iOS 访问 UITableViewCell label.text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039432/

相关文章:

cocoa - makeKeyAndOrderFront : again causes EXC_BAD_ACCESS

ios - 在计算上,这在将 subview 加载到 View 中时更有意义

arrays - 循环每个表行中的数组数据

iphone - 使用自定义节标题将行添加到 tableView

ios - 在 mkMapView ios 中的单击按钮中发送对象

python - PyQt4,如何一次添加一批小部件(QPushButton)并让它们在SLOT上执行

ios - 如何使用Apple Transport Security保护HTTPS .m4v URL

ios - 使用 swift 代码对两个 View 进行约束

ios - 使用 iOS 9 联系人框架获取 > 800 个联系人时应用程序崩溃

ios - 如何防止表格单元格边框被单元格图像切割?