在我的MyScene.h中,我有@property (nonatomic) int topScore;
在MyScene.m中,我有self.topScore = 10;
我试图通过#importing "MyScene.h"
在我的ViewController类中显示topScore,并声明MyScene *_myScene
并执行int topScore = _myScene.topScore;
我一直得到0.如何正确地将整数值或任何值从一个类传递到另一个类?
答案 0 :(得分:1)
在这个问题中,您提出了两个问题
您在 ViewController 类中放置了 MyScene 的对象。这里没有传递整数:
获得零的解决方案:您可能忘记在ViewController中初始化 MyScene 对象,这可能会导致此类错误。
要将值(对象/非对象)类型传递给另一个viewController,您应该在 ViewController.h 中声明数据传递类型的属性。
- 如果传递数据是对象类型,那么您可以将其设置为如下属性:
@interface ViewControlle : UIViewController
@property (nonatomic) NSString *name;
@end
然后当您想将此值传递给 viewController 时,只需从外部设置属性,如下所示:
ViewController *VcObj = [[ViewController alloc]init];
VcObj.name = @"My Name is Anthony";
//whatever the way you wanna show the view - push in the navigationController or show Modally o
在 ViewDidAppear 中实现 ViewController.m 时,必须使用名称价值如下:
-(void) ViewDidAppear{
[super ViewDidAppear];
self.myLabel.text = name; //here assumed that you have a UILabel declared as myLabel
}
我的建议是 ViewDidAppear ,因为每次视图出现在屏幕上时都会调用,如果任何 ViewController 嵌入在标签栏(UITabBarController)中< strong> viewDidLoad 不会每次都调用。否则,可以使用 ViewDIdLoad 方法代替Tab-bar。