使我的脑袋在这周围。香港专业教育学院让我的tableview项目链接到secondviewcontroller。单击表格视图中的项目时,我试图将数据转换为标签。我的prepareforsegue代码中出现错误。给我的问题是:

destViewController.toDoItemName = [toDoItem objectAtIndex:indexPath.row];

objectAtIndex在我的ViewController中定义,但在我的SecondViewController中未定义,因为它不需要。我将如何建立连接?

整个来源在这里:https://github.com/martylavender/LittleToDoApp/tree/Storyboards

#import "SecondViewController.h"
#import "ViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

@synthesize toDoItem;
@synthesize toDoItemName;
@synthesize tableView;

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    toDoItem.text = toDoItemName;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


// In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
         if ([segue.identifier isEqualToString:@"showRecipeDetail"]) {
         NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
         SecondViewController *destViewController = segue.destinationViewController;
         destViewController.toDoItemName = [toDoItem objectAtIndex:indexPath.row];
    }
}

@end

最佳答案

您的问题是,您正在不存在的UILabel上执行一种方法。方法objectAtIndex:在NSArray和类似对象上可用,但在UILabel上不可用。

在我看来,您正在尝试获取所选UITableViewCell上标签的内容。

如果是这样,您可以按以下方式获取单元格标签的内容:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"showRecipeDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        SecondViewController *destViewController = segue.destinationViewController;
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        destViewController.toDoItemName = cell.textLabel.text;
    }
}


编辑:
另外,您的prepareForSegue:代码应该在UIViewController的实现中,该实现将您带到SecondViewController,而不是在目标视图控制器的实现中(如此处所示)。

关于ios - UILabel没有可见的接口(interface)声明选择器objectAtIndex,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30469581/

10-12 05:32