1

这是我的动作 UIButton:

-(IBAction)favoriteButtonPressed:(id)sender
{
if (favoriteButtonSelected == 0) {

    [sender setSelected:YES];

    favoriteButtonSelected = 1;
    [sender setImage:[UIImage imageNamed:@"favoritedItem.png"]];
    [selectedObject setValue:@"Yes" forKey:@"Favorite"];

} else {

    [sender setSelected:NO];

    favoriteButtonSelected = 0;
    [sender setImage:[UIImage imageNamed:@"notFavorite.png"]];
    [selectedObject setValue:@"No" forKey:@"Favorite"];
}
}

如何在 viewDidLoad 中引用按钮?要使以下代码工作:

- (void)viewDidLoad
{
[super viewDidLoad];

if ([[selectedObject valueForKey:@"Favorite"] isEqual:@"Yes"])  {

    [favoriteButton setImage:[UIImage imageNamed:@"favoritedItem.png"]];
    [favoriteButton setSelected:YES];
    favoriteButtonSelected = 1;

} else {

    [favoriteButton setImage:[UIImage imageNamed:@"notFavorite.png"]];
    [favoriteButton setSelected:NO];
    favoriteButtonSelected = 0;
}
}

编辑进展:

现在我这样做了:在助手编辑器中从 UIButton Ctrl 拖动到 ViewController。连接:Outlet,名称:FavoriteButton,类型:UIButton,存储:weak。但是错误仍然存​​在。+ viewDidUnload 中的合成错误和错误.. 建议?

View Controller 的 Assistant Editor 标头,通过 Ctrl 拖动添加了属性:

@interface DetailViewController : UIViewController {
IBOutlet UIScrollView *viewScroller;
}

@property (nonatomic, strong) IBOutlet UILabel *mylLabel;

@property (nonatomic, strong) NSString *selectedObj;

@property (strong, nonatomic) NSArray *detailsDataSource;
@property int detailIndex;
@property (weak, nonatomic) IBOutlet UIButton *favoriteButton; //The added property

@end
4

3 回答 3

2

控制从按钮拖动到视图控制器的标题以创建属性。(您可以在助手模式下执行此操作,右上角的第二个按钮)..

然后您可以使用该属性从任何地方引用您的按钮

于 2012-08-10T01:25:17.110 回答
2

您需要的是按钮的 IBOutlet。

您可以 ctrl+拖动按钮从 XIB 文件到此类的标题,并创建一个名为 favoriteButton 的 IBOutlet 属性。

于 2012-08-10T01:26:45.740 回答
0

好吧,除非您使用的是最新版本的 Xcode,否则您确实需要 @synthesize 收藏按钮。

您确实应该发布您只是让人们猜测的错误消息。

于 2012-08-10T06:00:34.647 回答