Objective c 设置UILABEL的初始值
我正在尝试创建一个简单的测验应用程序(我是一个初学者),当我启动这个应用程序时,我想要一个UILabel来显示第一个问题(一系列问题)。我在设置初始值时遇到了一些问题 我做了几次尝试,都没有成功。我在QuizAppDelegate.h文件中声明我的UILabel,如下所示:Objective c 设置UILABEL的初始值,objective-c,ios,Objective C,Ios,我正在尝试创建一个简单的测验应用程序(我是一个初学者),当我启动这个应用程序时,我想要一个UILabel来显示第一个问题(一系列问题)。我在设置初始值时遇到了一些问题 我做了几次尝试,都没有成功。我在QuizAppDelegate.h文件中声明我的UILabel,如下所示: IBOutlet UILabel * questionField; 在main.m文件中,我尝试了以下操作: - (id)init { [super init]; questions = [[NSMu
IBOutlet UILabel * questionField;
在main.m文件中,我尝试了以下操作:
- (id)init {
[super init];
questions = [[NSMutableArray alloc] init];
// Not working
questionField = [[UILabel alloc] init];
[questionField setText:@"Hello"];
// Working
NSLog(@"Hello");
[self defaultQuestions];
// [self showQuestion];
return self;
}
我在QuizAppDelegate中尝试过的另一件事是:
@property (nonatomic, retain) IBOutlet UILabel *questionField;
- (void)changeTitle:(NSString *)toName;
在.m文件中:
@synthesize questionField;
- (id)init {
[super init];
questions = [[NSMutableArray alloc] init];
// Not working
[self changeTitle:@"Hello"];
// Working
NSLog(@"Hello");
[self defaultQuestions];
// [self showQuestion];
return self;
}
-(void)changeTitle:(NSString *)toName {
[questionField setText:toName];
}
关于如何解决这个问题的任何提示都将是非常棒的
//Anders如果以编程方式创建标签,则必须将标签添加到视图中:
[self.view addSubview:questionField];
这假设您有一个ViewController
。如果没有,并且您直接在AppDelegate
中执行此操作(顺便说一句,这是一个非常糟糕的主意),则执行此操作
[self.window addSubview:questionField];
如果在IB中创建,请确保设置了连接
您应该而不是在IB中添加UILabel并以编程方式实例化它。仅在以编程方式创建时调用
alloc
。否则,如果使用IB,请跳过该部分。您已经使用xib创建了它。如果您是以编程方式创建标签,则必须将标签添加到视图中:
[self.view addSubview:questionField];
这假设您有一个ViewController
。如果没有,并且您直接在AppDelegate
中执行此操作(顺便说一句,这是一个非常糟糕的主意),则执行此操作
[self.window addSubview:questionField];
如果在IB中创建,请确保设置了连接
您应该而不是在IB中添加UILabel并以编程方式实例化它。仅在以编程方式创建时调用
alloc
。否则,如果使用IB,请跳过该部分。您已经用xib创建了它。我怀疑您没有正确创建Interface Builder布局-或者您错过了所有控件,或者更可能的是,您没有将该控件连接到您头文件中的问题字段
出口
您需要将UILabel视图拖到主视图中,然后将其连接到头文件中的正确行。我怀疑您没有正确创建Interface Builder布局-或者您错过了所有控件,或者更可能的是您没有将该控件连接到
问题字段
出口在yout头文件中
您需要将UILabel视图拖到主视图中,然后将其连接到头文件中的正确行。您根本不应该使用
main.m
。事实上,几乎可以肯定的是,你不应该用它做任何事情。尝试创建一个UIViewController
子类,并用它练习测验。(将UILabel添加到IB文件中,然后连接插座。)也许在练习时使用基于视图的应用程序模板。您根本不应该使用main.m
。事实上,几乎可以肯定的是,你不应该用它做任何事情。尝试创建一个UIViewController
子类,并用它练习测验。(将UILabel添加到IB文件中,然后连接插座。)也许在练习时使用基于视图的应用程序模板。希望您没有将代码实际放入main.m
。在iOS上,您很少修改该文件
由于您在AppDelegate中执行所有操作,因此让我们将其保留在那里(而不是创建新的UIViewController
)。让我们从基础开始
将标签添加为实例变量
在.h
文件的大括号内正确执行此操作,请将
IBOutlet UILabel * questionField;
然后,声明相应的属性,并确保在.m
文件中合成它
@property (nonatomic, retain) IBOutlet UILabel *questionField;
@synthesize questionField // in the .m file
在界面生成器中添加UILabel 打开
main窗口.xib
。将UILabel从库拖动到表示应用程序窗口的窗口。然后从AppDelegate对象中控制拖动(Xcode 4中左侧的第三个图标;它将在IB 3的文档窗口中标记)。您将看到出现一个小的黑色窗口,选择名为questionField
的选项进行连接
有关IB中的屏幕截图以及如何建立连接,请参阅。这同样适用于Xcode 4
更改文本 您不需要单独的方法来更改文本,只需修改标签的
text
属性即可
选择将在应用程序启动时调用的方法(ApplicationIDFinishLaunching:WithOptions:
是执行此操作的好地方),并输入以下代码:
questionField.text = @"Hello";
就这样
代码 QuizAppDelegate.h
希望您没有真正将代码放入
main.m
。在iOS上,您很少修改该文件
由于您在AppDelegate中执行所有操作,因此让我们将其保留在那里(而不是创建新的UIViewController
)。让我们从基础开始
将标签添加为实例变量
在.h
文件的大括号内正确执行此操作,请将
IBOutlet UILabel * questionField;
然后,声明相应的属性,并确保在.m
文件中合成它
@property (nonatomic, retain) IBOutlet UILabel *questionField;
@synthesize questionField // in the .m file
在界面生成器中添加UILabel 打开
main窗口.xib
。将UILabel从库拖动到表示应用程序窗口的窗口。然后从AppDelegate对象中控制拖动(Xcode 4中左侧的第三个图标;它将在IB 3的文档窗口中标记)。您将看到出现一个小的黑色窗口,选择名为questionField
的选项进行连接
有关IB中的屏幕截图以及如何建立连接,请参阅。这同样适用于Xcode 4
更改文本 你不需要sepa