我有UIViewController
包含已正确连接的UIImageView
(我可以在控制器内设置图像)。
我还使用
设置了iVarUIImageView *_imgQRCode;
和使用
的属性@property (strong, nonatomic) IBOutlet UIImageView *imgQRCode;
使用合成:
@synthesize imgQRCode = _imgQRCode;
但是当我调用类似下面的内容时,我的图像没有任何反应,当我在Xcode中检查时,引用是内存引用是0x00000000
。请注意,在ViewController中调用代码时可以正常工作。从控制器实例化的任何其他视图控制器调用以下内容:
QRPopupViewController *qrPop = [[QRPopupViewController alloc] initWithNibName:@"QRPopupViewController" bundle:nil];
[controller.imgView setImage:[UIImage imageNamed:@"sample.png"]];
任何想法如何解决这个以及为什么我会变空?
答案 0 :(得分:2)
口渴:网点应该薄弱
@property (weak, nonatomic) IBOutlet UIImageView *imgQRCode;
你必须将imgQRCode插座挂钩到你的viewController,你可以在viewDidLoad中使用它。
答案 1 :(得分:0)
对于不属于当前可见视图控制器的所有UI Control实例,您将获得null。因此,由于这一切,您对该UI控件的所有调用都不会执行与UI相关的操作。
如果要更新任何不属于当前可见视图控制器的UI控件,可以使用app delegate。它是唯一集中在所有视图控制器之间的地方。
有一种机制,称为“协议委托”,用于调用某些方法从当前可见的视图控制器更新UI部分。您可以浏览this URL了解详细信息。
如果您正在选择“协议委托”的方法,那么请详细探索方法执行流程。从当前可见视图控制器的方法调用协议时,将在调用方法完成后调用相应的协议实现方法。所以你需要注意同步。