gpt4 book ai didi

iphone - 如何更改转换 Controller 上的 UIButton 图像

转载 作者:行者123 更新时间:2023-11-29 05:05:31 25 4
gpt4 key购买 nike

我正在尝试在转换 Controller 上设置字段和按钮图像。我可以成功更改标题字段和详细信息文本字段,但按钮根本没有改变。

- (void)prepareController:(MLSViewController *)controller forRow:(NSUInteger)row {
AdvancedTableItem *item = [self.tableItems objectAtIndex:row];
EditLocationViewController *castedController = (EditLocationViewController *)controller;
castedController.titleText = item.text;
castedController.detailsText = item.details;
castedController.isDefaultLocation = (defaultItem == item);
[castedController.iconButton setImage:[UIImage imageNamed:item.icon] forState:UIControlStateNormal ];
}

在调用转换 Controller 按钮上的 setImage 之前,我测试了 item.icon 是否已正确填充,结果是正确的。

简而言之,此代码适用于 titleText 和DetailsText 更改,但不适用于按钮图像。

有什么线索吗?

最佳答案

有几处可能是错误的。我会执行以下操作:

  1. 预先创建图像并确保其已加载
  2. 确保 iconButton(我假设是 IBOutlet)已链接
  3. 确保在显示 View 后调用此方法,否则不会设置 IBOutlet,但我认为是这种情况,否则标题也不会出现)。

这就是我在你的方法中要做的事情:

- (void)prepareController:(MLSViewController *)controller forRow:(NSUInteger)row {
AdvancedTableItem *item = [self.tableItems objectAtIndex:row];
NSLog( @"Item from table: %@", item );
EditLocationViewController *castedController = (EditLocationViewController *)controller;
NSLog( @"Controller: %@", castedController );
castedController.titleText = item.text;
castedController.detailsText = item.details;
castedController.isDefaultLocation = (defaultItem == item);
NSLog( @"Icon Name: %@", item.icon );
UIImage *icon = [UIImage imageNamed:item.icon];
NSLog( @"Icon Image: %@, icon button on controller: %@", castedController.iconButton );
[castedController.iconButton setImage:icon forState:UIControlStateNormal ];
}

确保所有值都不为 NIL(尤其是 icon 和 iconButton)。

在 iPhone/iOS 中处理问题时,NSLog 是你的 friend ,而嵌套调用是你的敌人。仅仅因为变量为 NIL 并不意味着应用程序会提示它。它可能会忽略它。

关于iphone - 如何更改转换 Controller 上的 UIButton 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com