Унициализация корневого представления в iOS
-
27-10-2019 - |
Вопрос
Можно подумать, что я могу легко найти ответ на этот вопрос, и, возможно, я пропустил его, но здесь идет.
Мое приложение содержит несколько просмотров, в которых основной вид отображается куча информации, которую она постепенно собирает от пользователя, микрофона и камеры через другие виды. Все должно закончиться одной большой климатической «кнопкой отправки». В этот момент данные безопасно хранятся (в настоящее время в базе данных SQL ... но это другая история).
Как только это будет сделано, я хочу, чтобы весь процесс начал заново, что означает повторную режимализацию взгляда на девственное государство. В Android я могу бросить новое намерение и уничтожить старую.
Я собираюсь, я должен начать с делегата приложения (см. Код ниже). Теперь вопрос в том, куда мне пойти отсюда?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
self.window.rootViewController = self.mainViewController;
self.mainViewController.managedObjectContext = self.managedObjectContext;
[self.window makeKeyAndVisible];
return YES;
}
Решение 2
Таким образом, после справедливой доли копания и проб и ошибок. Я нашел что -то, что работает так, как я хочу.
Я создал специальную функцию в делегате приложения, которая выполняет следующее:
- (void) newScreen
{
self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
self.window.rootViewController = self.mainViewController;
self.mainViewController.managedObjectContext = self.managedObjectContext;
}
Затем из контроллера основного представления я называю эту функцию
[(AppDelegate *)[[UIApplication sharedApplication] delegate] newScreen];
Проще простого...
Другие советы
Я бы создал rootViewController в качестве своей стартовой позиции. Когда rootViewController загружается, я бы инициализировал и добавил свой первый процесс ввода данных. Таким образом, когда я нажимаю на отправку, я бы позвонил PoptorootViewController, и когда rootViewContoller загрузит, он будет инициализировать и снова загрузит первый процесс ввода данных.