gpt4 book ai didi

iphone - InitWithName 在 ViewDidLoad 之前执行可能吗?

转载 作者:行者123 更新时间:2023-12-03 21:15:37 25 4
gpt4 key购买 nike

我正在尝试在两个 View Controller 之间移动 NSString,在搜索了所有复杂的方法之后,我想要习惯的最简单、最直接的方法是在接收 VC 中编写一个 initWithName 函数并调用它在发送 VC 中。它确实成功移动了它,但我希望它在 ViewDidLoad 加载 textViewer 之前执行,以便它在按下选项卡按钮后立即显示。以下是发送 VC 的代码:

- (void)textViewDidEndEditing:(UITextView *)textView
{
if ([textView.text isEqualToString: @""]) {
textView.text = @"*Paste the machine code in question here*";
}
SecondViewController *theVCMover = [[SecondViewController alloc] initWithName: textView.text];
[self.navigationController pushViewController:theVCMover animated:YES]; //Is this really necessary if I'm not going to segue it directly, I'm just waiting for the user to press the next tab
gotItLabel.text = @"Got it! Ready for action...";
}

这是接收 VC 上的代码:

 - (id)initWithName:(NSString *)theVCMovee {
self = [super initWithNibName:@"SecondViewController" bundle:nil];
if (self) {
rawUserInput = theVCMovee;
CleanerText.text = rawUserInput;
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
CleanerText.text = rawUserInput;
NSLog(@"Got the other tab's text and it's %@ ", rawUserInput);

}

最佳答案

您的代码大部分都很好,但是您会发现,由于您有更复杂的 View Controller ,您不一定需要编写自定义初始化程序来完成每一个属性设置。请注意,如果 CleanerText 是您从 nib 加载的 UI 元素,则在 init 方法中设置 CleanerText.text 没有帮助 - 它不会加载,直到调用 -viewDidLoad

不过,如果您为 rawUserInput 或其他要设置的变量声明属性,则不必在 init 中执行所有操作。然后你就可以:

SecondViewController *theVCMover = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
theVCMover.rawUserInput = textView.text;
theVCMover.otherProperty = otherValue;
....

其余代码的工作原理相同。

关于iphone - InitWithName 在 ViewDidLoad 之前执行可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619968/

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