ViewController
всегда загружается в stack
первый в последний из поэтому при подключении любого viewController
с помощью нажимной SEGUE во-первых, он загружает весь viewController
внутри памяти, и когда вы вернетесь к ранее загруженным зрения он не будет загружаться снова так процесс идет так далее.
Здесь atrick, если вы выберете. Вам нужно просто установить ключ NSUserDefault
, используя dispatch_once
Блок GCD внутри MapVC
viewDidLoad
метод соответственно и проверьте перед его загрузкой.
Пример:
// MapVC viewController
- (void)viewDidLoad {
[super viewDidLoad];
static dispatch_once_t pred;
static id shared = nil;
dispatch_once(&pred, ^{
// set the key true here
});
if([[[NSUserDefaults standardUserDefaults] valueForKey:@"yourKey"] isEqualToString:@"true"]){
// code here which you do not wish to execute again and again
// Note: set the key false here so this block will not execute again
}
}
Примечание: установить ключ верно снова где-то еще, если вы хотите, чтобы выполнить этот конкретный код.
Итак, что мне делать? –
Вы можете сохранить ссылку на экземпляр MapVC глобально. Поэтому каждый раз, когда вы нажимаете MapVC из HomeVC, вы можете использовать ту же ссылку. – PGDev
Но я загружаю его с помощью segue. –