gpt4 book ai didi

ios - 在加载 View 之前帮助使用 View Controller 方法

转载 作者:行者123 更新时间:2023-11-28 17:45:08 24 4
gpt4 key购买 nike

我有一个名为 DebugViewController 的 UIViewController,其中包含一个 UITextView,以及一个名为 debugPrint 的公共(public)方法,该方法用于将 NSString 写入 UITextView 并显示它。

是否可以在打开 UIViewController 之前写入 UITextView,以便在打开它时显示之前写入的文本?

在我的父 View Controller viewDidLoad 方法中,我在 DebugViewController 上调用 initWithNibName,如下所示

debugViewController = [[DebugViewController alloc] initWithNibName:@"DebugView" bundle:nil];

然后我按如下方式调用 debugPrint

[debugViewController debugPrint:@"viewDidLoad"];

一段时间后,我调用以下命令打开 debugViewController

debugViewController.delegate = self;
debugViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:debugViewController animated:YES];

但是之前写的所有文本都丢失了。

请告诉我如何在向用户显示 View Controller 之前使用 View Controller 方法。

谢谢,

贾斯汀

最佳答案

你做的有点不标准。与往常一样,这样做的危险在于,如果您对自己正在做的事情没有真正的专家把握,您很快就会发现自己陷入困境。

如果您希望在 View 显示给用户之前设置一些东西,那么最好的方法是在viewWillAppear 方法中进行。将它放在那里而不是放在 viewDidLoad 中,因为 view 可能加载一次但出现多次。您将其放置在何处取决于数据是否会随着外观的变化而变化。

因此,如果您的数据非常静态且不会更改,请使用 viewDidLoad 方法。

假设您将选择 viewWillAppear 选项,让我们通过在 View Controller 中添加一个 ivar 来完成第一步:

NSString *myText;

在初始化之后设置:

debugViewController = [[DebugViewController alloc] initWithNibName:@"DebugView" bundle:nil];
debugViewController.myText = @"My text here";

然后,在 debugViewControllerviewWillAppear 方法中:

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

myTextView.text = myText;
}

View Controller 生命周期很复杂,您可以从 View Controller Programming Guide for iOS 中看到.所以我会说最好不要偏离阻力最小的路径,除非你有充分的理由。也就是说,有时最好的学习方法是通过实验。

关于ios - 在加载 View 之前帮助使用 View Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com