ビューからビューに変更するたびに、ビューの変数とコンテンツが「デフォルト」にリセットされます。たとえば、ビューでラベルのテキストフィールドをデフォルトの「ラベル」を「こんにちは」に変更し、ビューを変更します。同じビューに戻ると、テキストは再び「ラベル」になります。
これまで私がこれを回避した唯一の方法は、静的文字列を設定してから、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を介してすべての値を再度設定する必要がないことです。これは、優れたプログラミングスタイルであるとは思えません。