MyGems.h
#import <UIKit/UIKit.h>
@interface MyGems : UIViewController {
IBOutlet UIImageView *lock1;
Collect.m
#import "Collect.h"
#import "MyGems.h"
@implementation Collect
- (IBAction) unlock {
if (lock1.hidden = NO) {
ruby.hidden = NO;
}
答案 0 :(得分:1)
你几乎不应该这样做。视图控制器(MyGems
,应该命名为MyGemsViewController
)负责管理此视图。其他类不应该进入并修改其IBOutlets。当MyGems管理的视图卸载并且lock1
出乎意料地变为零时,这样做会导致严重的问题。
目前还不清楚Collect
在这种情况下是什么;我假设它是另一个视图控制器?我不清楚为什么unlock
不是MyGemsViewController
上的方法。
另请注意,此代码不正确,应向您发出警告,告诉您错误:
if (lock1.hidden = NO) {
此将 NO
分配给lock1.hidden
。您打算使用==
,但不应该以这种方式对NO
进行测试。你应该这样做:
if (! lock1.hidden) {
您必须小心测试针对YES
和NO
的布尔值。有许多真正的值不等于YES
。
答案 1 :(得分:0)
你需要确保在Collect类中有对lock1的引用,很可能你想通过在MyGems中引用Collect类然后将这个视图逻辑移回MyGems而不是你的收集模型类