0

我一直在尝试使这项工作有一段时间没有机会,每次我从视图更改为视图时,视图的变量和内容都会重置为“默认”,例如,如果在视图中我更改了标签的文本字段默认“标签”为“你好”,然后更改视图,一旦我回到相同的视图,文本将再次为“标签”。

到目前为止,我解决这个问题的唯一方法是设置一个静态字符串,然后在 viewDidLoad 中将 Label.text 更改为字符串。我只知道这不是这样做的方法。我有一种预感,这与我如何从视图转换到视图有关(分配和启动等)

我目前的过渡方式:

FirstView.h:
@interface FirstView : Engine
@property(nonatomic, readwrite) MainGameDisplay *secondView;

FirstView.m:
@implementation FirstView

- (IBAction)StartGame:(id)sender 
{ 
    if (! self.secondView)
    self.secondView = [[MainGameDisplay alloc] initWithNibName:nil bundle:nil];
    [self presentViewController: self.secondView animated:YES completion:NULL];
}

和 MainGameDisplay:

MainGameDisplay.h:
@class ViewController;

@interface MainGameDisplay : Engine
@property (strong) ViewController *firstPage;

MainGameDisplay.m:
@implementation MainGameDisplay

- (IBAction)returnToHome:(id)sender {
    if (!self.firstPage)
        self.firstPage = [[ViewController alloc] initWithNibName:nil bundle:nil];
        [self presentViewController: self.firstPage animated:YES completion:NULL];
}

我想要的是不必通过 viewDidLoad 再次设置所有值,我只是无法将其视为一种好的编程风格。

4

1 回答 1

1

你对出了什么问题的怀疑是对的。尽管您调用了您的方法returnToHome:,但您并没有真正返回任何地方,而是ViewController在您已经拥有的任何东西之上堆叠了一个新副本。

要真正回去,相反的presentViewController:dismissViewControllerAnimated:MainGameDisplay当按下按钮返回时,尝试在课堂上使用它。

于 2012-11-13T20:40:06.717 回答