kullanıcı bunu stockholm.xib göstermek istediğiniz uygulamayı başlatmak ve Burada yaptığında:ViewDidAppear'ı yalnızca bir kez nasıl arayabilirim?
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSUserDefaults *startPage =[NSUserDefaults standardUserDefaults];
NSString *page =[startPage stringForKey:@"page"];
NSLog(page);
if(page==nil)
{
//Do nothing
}
else if ([page isEqualToString:@"Default"])
{
//Do nothing
}
else if ([page isEqualToString:@"Stockholm"])
{
NSLog(@"going to Stockholm");
Stockholm *Start =[[Stockholm alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:Start animated:YES];
}
else {
NSLog(@"HAHA");
}
ancak kullanıcı stockholm.xib kapattığında kullanarak:
[self dismissModalViewControllerAnimated:YES];
animasyon sonra bitti, uygulama çöküyor. ve nedeni, sanırım viewDidAppear iki kez çağırır ve bu nedenle son zamanlarda kapatılan xib dosyasını açmaya çalışıyor.
şimdi, görünümü nasıl arayabilirim yalnızca bir kez mi görüntülendi? Böylece kullanıcı Stockholm'den geri döndüğünde viewDidAppear aranmayacak mı? başka bir çözüm mü?
teşekkürler :) Sen viewDidAppear
yerine viewDidLoad:
yöntemde tüm işlevselliğe taşımayı deneyebilirsiniz
evet, bunun sebebi şudur: Bunu hareket ettirirsem: Stockholm * Başlangıç = [[Stockholm ayırma] initWithNibName: nil bundle: nil]; [self presentModalViewController: Animasyon başlat: YES]; ViewdidLoad için , işe yaramaz. – hafhadg3
Sadece görünümü ilk kez görüntülüyorsanız, ilk defa olup olmadığını öğrenmek için bir boole bayrağı kullanın. BOOL firstTime = true; if (... && firstTime) {firstTime = false; ...} – Dimitris
Hala çalışmıyor. .h statik BOOL firstTime = TRUE; .m - (void) viewDidAppear: (BOOL) animasyonlu { \t [super viewDidAppear: animasyonlu]; \t (firsttime = TRUE) \t firsttime { \t \t // özel Page \t git} eğer = FALSE; 0x018ce464 <+0665> JnE 0x18ce481 <- [UIWindowController transitionViewDidComplete: fromView: bileti görüntüleyebilir:] + 694> } bu hatası alıyorum YARDIM lütfen! – hafhadg3