如何在没有 XIB 文件的情况下以编程方式更新 Xcode 中的 UILabel?

2024-03-22

我被困住了:(
在我的应用程序中,每次更新到新位置时,我都需要 CLLocationManager 进行更新。我没有使用 XIB/NIB 文件,我编码的所有内容都是以编程方式完成的。到代码:
the .h


@interface TestViewController : UIViewController
    UILabel* theLabel;

@property (nonatomic, copy) UILabel* theLabel;

@end

the .m


...

-(void)loadView{
    ....
    UILabel* theLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,20.0)];
    theLabel.text = @"this is some text";

    [self.view addSubView:theLabel];
    [theLabel release]; // even if this gets moved to the dealloc method, it changes nothing...
}

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"Location: %@", [newLocation description]);

    // THIS DOES NOTHING TO CHANGE TEXT FOR ME... HELP??
    [self.view.theLabel setText:[NSString stringWithFormat: @"Your Location is: %@", [newLocation description]]];

    // THIS DOES NOTHING EITHER ?!?!?!?
    self.view.theLabel.text = [NSString stringWithFormat: @"Your Location is: %@", [newLocation description]];

}
...

有什么想法或帮助吗?

(这都是手工卡住的,所以如果看起来有点混乱,请原谅我)如果需要,我可以提供更多信息。


你的loadView方法是错误的。您没有正确设置实例变量,而是生成了一个新的局部变量。将其更改为以下内容并省略UILabel * and 不要释放它因为您想保留对标签的引用以便稍后设置文本。

-(void)loadView{
    ....
    theLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,20.0)];
    theLabel.text = @"this is some text";

    [self.view addSubView:theLabel];
}

- (void) dealloc {
    [theLabel release];
    [super dealloc];
}

然后直接访问变量,如下所示:

 - (void)locationManager:(CLLocationManager *)manager
     didUpdateToLocation:(CLLocation *)newLocation
            fromLocation:(CLLocation *)oldLocation
 {
     NSLog(@"Location: %@", [newLocation description]);

     theLabel.text = [NSString stringWithFormat: @"Your Location is: %@", [newLocation description]];

 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有 XIB 文件的情况下以编程方式更新 Xcode 中的 UILabel? 的相关文章

随机推荐

  • 如何让 Google 字体在 IE 中工作?

    我一直在开发一个使用谷歌字体 API https code google com apis webfonts 它很棒 据说已经在 IE 中进行了测试 但是在 IE 8 中测试时 字体根本没有样式化 我包括了谷歌的字体指示 http code
  • Cuda和pytorch内存使用情况

    我在用Cuda and Pytorch 1 4 0 当我尝试增加batch size 我遇到以下错误 CUDA out of memory Tried to allocate 20 00 MiB GPU 0 4 00 GiB total c
  • TfidfVectorizer.fit_transfrom 和 tfidf.transform 之间有什么区别?

    在 Tfidf fit transform 中 我们仅使用参数 X 而没有使用 y 来拟合数据集 这是正确的吗 我们仅为训练集的参数生成 tfidf 矩阵 我们没有使用 ytrain 来拟合模型 那我们如何对测试数据集进行预测呢 https
  • 如何以编程方式禁用 TextView maxLines?

    我很难重置maxLines的属性TextView以编程方式 刚刚尝试设置为0但它不起作用 1使应用程序崩溃 我可以使用更简单的解决方法并设置maxLines to 5000但我不想那样做 有什么想法如何做到这一点吗 UPDATED 好吧 我
  • Android 首选项屏幕布局

    我的应用程序中有以下首选项屏幕
  • Android P 中调用服务的 AlarmManager:startForegroundService

    我正在使用 AlarmManager 如下所示 它在 Android O 及以下版本中运行良好 AlarmManager mgr AlarmManager context getSystemService Context ALARM SER
  • NumPy ndarray 的三元运算符?

    NumPy 有三元运算符吗 例如 在 R 中 有一个向量化的if else功能 gt ifelse 1 10 lt 3 a b 1 a a b b b b b b b b NumPy 中有类似的东西吗 您正在寻找numpy where ht
  • File.renameTo() 没有任何效果

    我希望能够重命名文件夹列表 以便删除不需要的字符 例如 点和双空格必须变成单个空格 单击 GUI 中的按钮后 您将看到一个带有正确格式名称的消息框 这表明格式正确并且函数被调用 当我查看我创建的测试文件夹时 名称没有更改 即使刷新后也没有更
  • 在 haskell 中将整数列表转换为一个 Int (如 concat)

    和标题说的差不多 我有一个整数列表 如下所示 1 2 3 我想将其更改为整数 123 我的第一个想法是 concat 但这不起作用 因为它的类型错误 我尝试了各种方法 但通常最终只是返回相同的列表 非常感谢任何帮助 另外 我已经找到了一种打
  • Java:如何在枚举中使用构造函数重载?

    我正在使用 Java 中的枚举 正如我所看到的 可以重载枚举构造函数 我的问题是 在这种情况下 是否有可能从构造函数重载中受益 因为据我所知 既不可能自己调用 它 也不可能强制编译器调用您想要调用的特定构造函数 感谢您花时间向我澄清这些内容
  • 在C++中,1和1i64有什么区别?

    我正在将一些 32 位兼容代码转换为 64 位 但我遇到了障碍 我正在编译 VS2008 x64 项目 并且收到以下警告 warning C4334 lt lt result of 32 bit shift implicitly conve
  • CodeIgniter 图像上传 - 无法显示错误消息

    这是我的上传模型 function upload avatar id this gt tank auth gt get user id config upload parameters and upload image config arr
  • PHP4 HTTP Post 不带 cURL

    我有以下代码 可在 PHP5 上运行 无需使用 cURL 即可发送 HTTP POST 我希望它可以在 PHP 4 3 0 及更高版本上运行 opts array http gt array method gt POST header gt
  • (Play 2.0) 设置 AnyContent 的最大 POST 大小

    我在 Play 2 0 中使用 Scala 每当将大数据 超过 100KB 发布到特定端点时 我都会收到 413 错误 它使用 anyContent 解析器 对于这个特定的 API 使用任何其他解析器是不合理的 Stack Overflow
  • Jenkins CLI 列表-带有文件夹的作业

    使用 Jenkins 文件夹插件时 有没有一种方法可以获取所有作业的列表 包括文件夹中的作业以及可能的文件夹路径 类似于默认 CLI 中的列表作业的工作方式 我制作了一个小型 PowerShell 脚本来获取默认仪表板中每个作业的最后一次构
  • Maven Shade 插件:如何解决警告消息“定义 1 重叠资源:[警告] - META-INF/MANIFEST.MF”

    For
  • 从文本文件读取到数组

    我正在尝试逐行读取文本文件并将其添加到数组中 当前代码和输出如下 我如何正确读取它 即将实际文本读入数组 而不是当前输出 VB NET 的控制台应用程序版本 Code Sub Main Dim file As String C path t
  • constexpr 和初始化

    也许已经有人问过类似的问题了 当然 这是一个挑剔的问题 我有一堆常数std maps 之间切换enum class 价值观及其std string表示 双向 这里有人向我指出 这些映射将在运行时初始化 当其他初始化代码运行时 在我的程序执行
  • EF.Core 2.0.1 在 Xamarin.Android 中不安全

    我不知道该怎么办 有什么建议么 部署异常 D Mono 12535 程序集加载程序探测位置 System Runtime CompilerServices Unsafe F monodroid assemble 12535 在启动注册期间无
  • 如何在没有 XIB 文件的情况下以编程方式更新 Xcode 中的 UILabel?

    我被困住了 在我的应用程序中 每次更新到新位置时 我都需要 CLLocationManager 进行更新 我没有使用 XIB NIB 文件 我编码的所有内容都是以编程方式完成的 到代码 the h interface TestViewCon