ios - 如何在 segue 之后设置 UILabel 的值?

标签 ios

我有一个简单的 Storyboard ,由两个 UIViewController 组成,用一个 segue 连接它们。

UIVC1 --> UIVC2

我正在尝试将 UIVC2 上的 UILabel 设置为等于存储在 UIVC1 中的字符串。我试图在 prepareForSegue 方法中传递字符串,到目前为止,我已将它设置为 UIVC2 中的 property

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"mySegue"]) {
        [segue.destinationViewController setDesc:[Brain description]];
    }
}

UIVC2 中的属性是desc.

然后,在我实现的 setDesc 方法中,我运行 self.display.text = self.desc where display是我的 UILabel 属性。

然而,这是行不通的,即使我只是 NSLog UILabel 的值,它也不会打印任何东西,这让我想知道 Controller 是否正在与 UILabel 通信......(我确实做了ctr+单击并拖动 Storyboard 中的东西以将它们连接起来。)

有更好的方法吗??

最佳答案

您的 UILabel 文本未被设置,因为 prepareForSegue 在目标 View Controller 上的标签的 IBOutlet 连接之前被调用。所以此时标签仍然是 nil(并且向 nil 发送消息没有任何效果。)

您应该做的是在目标 View Controller 上创建一个新属性来存储字符串,并在 prepareForSegue 中设置此属性。然后在目标 View Controller 的 viewDidLoad 方法中,使用该属性的值来设置 UILabel 的 text 属性。

关于ios - 如何在 segue 之后设置 UILabel 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576177/

相关文章:

ios - 使用搜索栏 iOS swift 3 中的条目加载单元格时图像显示不正确

PHP 安全困境

ios - 在调用服务器获取数据期间无法看到 UIActivityIndi​​catorView

ios - 带扩展的 Swift 扩展

ios - UICollectionViewCell 自动布局安装的 View 不起作用

objective-c - 构建 iOS 静态库

ios - 在 UISlider iOS 上设置左右图像

ios - 为什么 [UIScreen mainScreen].bounds] 没有返回全屏大小?

ios - 如何将单元格添加到uitableview

ios - 在私有(private) pod 的情况下无法访问主页?