在iPhone上添加和更改标签? (IOS4 +)

时间:2010-12-04 19:10:16

标签: iphone ios4 interface-builder uilabel

我正在尝试为iPhone 4编写一个“hello world”。由于这是我第一次尝试iPhone应用程序开发,以及我对Objective C的第一次体验,请随时假设您需要教我如何吸吮鸡蛋就在这一个。

作为我的基础,我从http://appsamuck.com/day1.html教程开始 - 但它已经过时了,除非我解构步骤,否则我不会去任何地方。

此时我正在查看他告诉您如何向显示器添加标签的部分 AND 添加对标签的引用。

不幸的是,它似乎并没有恰当地融合在一起。

基本上,当我运行“Built and Run”按钮时,我希望模拟器做的是“MyLabel”更改为“HERE”

如果全部运行,则没有错误,但cdLabel.text没有更改为“HERE”。

我有一张基本GUI设置的照片 - 并且可以发布所需的任何其他信息。

ViewController.h读取:

@interface MinutesToMidnightViewController : UIViewController {
     IBOutlet UILabel *cdLabel;
 }
 -(void)updateLabel;

ViewController.m中包含以下功能:

 -(void)updateLabel {
  cdLabel.text = [NSString: "HERE"];
 }

最后 - 有一张我如何在界面设计器中设置GUI位的照片:

如果有人可以在最后一点连接点,我会非常感激! (此外,对IOS4初学者教程或开源APPS的指导将受到高度重视:)

谢谢! - A

更新 在回答何时拨打updateLabel

的问题

我有功能

 - (void)applicationDidFinishLaunching:(UIApplication *)application {   
     [viewController updateLabel];
 }

内置于我的MinutesToMidnightAppDelegate.m文件

2 个答案:

答案 0 :(得分:1)

写得好的问题(+1为此)

我很惊讶这一行汇编:

cdLabel.text = [NSString: "HERE"];

试试这个:

cdLabel.text = @"HERE"; // this is how you write a literal NSString

如果不起作用,请在此行上设置断点并检查cdLabel是否为零。如果它是零,那么返回并在IB中仔细检查您的连接。很难看出你发布的分辨率,但如果我眯着眼睛它看起来还不错。 :)

此外,updateLabel在哪里调用?

修改

applicationDidFinishLaunching:在正常加载viewController的视图之前调用。实际上,该方法通常会出现第一个viewController的视图。

在任何情况下,您都应该在 - [UIViewController viewDidLoad]中设置您的视图,该视图在加载视图后调用(正如您可能从名称中猜到的那样)

或 - [UIViewController viewWillAppear]如果你想在每次出现视图时这样做。

答案 1 :(得分:1)

在.m中合成cdLabel,并在viewDidLoad中设置label.text。此外,[NSString:“Here”]将无效。只需使用cdLabel.text = @"HERE";(与cdLabel.text = [NSString stringWithFormat:@"HERE"];

相同