Objective c 无法将值从UITableViewCell传递到详图视图

Objective c 无法将值从UITableViewCell传递到详图视图,objective-c,cocoa-touch,uistoryboard,Objective C,Cocoa Touch,Uistoryboard,我试图根据在表格视图中触摸的单元格更改详细视图中标签的颜色 我就是做不到。下面是我的代码。我已经包含了详细视图中的头文件,并为标签创建了一个IBOutlet 更新:理想情况下,当我单击单元格时,detailview中的标签颜色应该是红色。这是一个关于我的问题的视频 当您切换时,插座尚未设置,因此您无法找到插座进行更改。试着在你所选择的viewcontroller的ViewDiLoad中发送一些对象或东西。你读了这些内容,然后用它们作为知道要更改的颜色的方法,然后在相同的代码中更改标签的颜色。你遇

我试图根据在表格视图中触摸的单元格更改详细视图中标签的颜色

我就是做不到。下面是我的代码。我已经包含了详细视图中的头文件,并为标签创建了一个
IBOutlet

更新:理想情况下,当我单击单元格时,detailview中的标签颜色应该是红色。这是一个关于我的问题的视频


当您切换时,插座尚未设置,因此您无法找到插座进行更改。试着在你所选择的viewcontroller的ViewDiLoad中发送一些对象或东西。你读了这些内容,然后用它们作为知道要更改的颜色的方法,然后在相同的代码中更改标签的颜色。

你遇到的问题是,你的产品中的标签ReferenceDetailViewController尚未从xib加载,但您正在尝试设置其textColor属性

为了确保这是问题所在,请尝试在设置颜色的行中设置断点,并在ReferenceDetailViewController[viewDidLoad]方法中设置另一个断点。应该首先调用设置颜色的行

解决问题的一个简单方法是在ReferenceDetailViewController类上有一个属性,该属性“保存”UIColor实例,然后在viewDidLoad方法上设置它:

// ...

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"ReferenceDetail"]) {
        ReferenceDetailViewController *referenceDetailViewController = [segue destinationViewController];

        UIViewController *referenceDetailView = [segue destinationViewController];


            NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
            NSString *destinationTitle = [[referenceArray objectAtIndex:[indexPath row]] name];
            [referenceDetailView setTitle:destinationTitle];
            referenceDetailViewController.auxTextColor = [UIColor redColor];
}

// ..
在ReferenceDetailViewController中:

@interface ReferenceDetailViewController : UIViewController

@property (retain, nonatomic) UIColor *auxTextColor;

// ...

@end

@implementation ReferenceDetailViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    label1.textColor = self.auxTextColor;

    // ...
}

@end

如果必须对一组标签执行此操作,最好使用NSDictionary对象来保存这些属性。

请解释您观察到的实际结果。您好@H2CO3,我已更新了我的问题!谢谢您的评论。@Jason我想问题是您没有在xib中设置文本颜色,但我不确定。如果有用的话就试试。谢谢你的评论@W'rkncacnter。当我编译并运行时,detailview中的标签根本没有改变。你知道吗?@H2CO3我设置为“蓝色”,但仍然不起作用。真的很奇怪。似乎我可以访问detailview,但就是无法写入它。
@interface ReferenceDetailViewController : UIViewController

@property (retain, nonatomic) UIColor *auxTextColor;

// ...

@end

@implementation ReferenceDetailViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    label1.textColor = self.auxTextColor;

    // ...
}

@end