gpt4 book ai didi

Objective-C (iOS) : prepareForSegue won't pass my data into destination VC

转载 作者:行者123 更新时间:2023-11-28 18:13:25 25 4
gpt4 key购买 nike

VC1 = NewGameViewController
VC2 = GameViewController

NewGameViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if( [segue.identifier isEqualToString:@"newGameSegue"]) {
GameViewController *gameVC = (GameViewController *)segue.destinationViewController;

NSArray *array = [self nameArrayForTextFieldArray:self.namePicker.textFieldArray withColon:YES];
gameVC.nameArray = [[NSArray alloc] initWithArray:array];
}

-(NSArray *)nameArrayForTextFieldArray:(NSArray *)array withColon:(BOOL *)bool给定一个 nsarray 的文本字段,基本上返回一个 nsarray 的字符串。 withcolon 是一个 bool 值,表示您是否希望字符串末尾附加一个冒号。

当我调试我的代码时,gameVC 中的 _nameArray ivar 在调用这里的每一行之后仍然读取 nil...有人能帮我吗??

最佳答案

当即将执行从一个屏幕到另一个屏幕的转场时,UIKit 会调用 prepareForSegue 方法。它允许我们在显示之前将数据提供给新的 View Controller 。通常你会通过设置它的属性来做到这一点。

新的 View Controller 可以在 segue.destinationViewController 中找到。如果 GameViewController 嵌入了导航 Controller ,则新的 View Controller 将不是 GameViewController,而是嵌入它的导航 Controller 。要获取 GameViewController 对象,我们可以查看导航 Controller 的 topViewController 属性。此属性指的是当前在导航 Controller 中处于事件状态的屏幕。

要将对象发送到新的 View Controller ,您可以使用此解决方案使用 performSegueWithIdentifier:

例如,如果我们想在按下 UIButton 时执行一个 segue,我们可以这样做:

MyViewController.h 中,我们创建一个 IBAction(连接到 UIButton),将按钮从 Storyboard拖到代码中:

- (IBAction)sendData:(id)sender;

MyViewController.m中我们实现了方法:

- (IBAction)sendData:(id)sender
{
NSArray *array = [self nameArrayForTextFieldArray:self.namePicker.textFieldArray withColon:YES];
[self performSegueWithIdentifier:@"newGameSegue" sender:array];
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"newGameSegue"]) {
UINavigationController *navigationController = segue.destinationViewController;
GameViewController *controller = (GameViewController *)navigationController.topViewController;
controller.nameArray = sender;
}
}

关于 Objective-C (iOS) : prepareForSegue won't pass my data into destination VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322431/

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