Khi người dùng bắt đầu ứng dụng Tôi muốn nó hiển thị các stockholm.xib và Nó ở đây:Làm thế nào tôi có thể gọi ViewDidAppear chỉ một lần?
-(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");
}
nhưng khi người dùng đóng stockholm.xib sử dụng:
[self dismissModalViewControllerAnimated:YES];
sau khi hình ảnh động là đã xong, ứng dụng gặp sự cố. và lý do là, tôi đoán, viewDidAppear gọi hai lần và do đó, nó đang cố gắng mở tệp xib đã đóng gần đây.
bây giờ, làm cách nào tôi có thể gọi chế độ xem chỉ xuất hiện một lần? để khi người dùng quay trở lại từ Stockholm, viewDidAppear sẽ không được gọi? bất kỳ giải pháp nào khác?
thanx :)
có, lý do là nếu tôi di chuyển điều này: Stockholm * Bắt đầu = [[Stockholm alloc] initWithNibName: nil bundle: nil]; [self presentModalViewController: Bắt đầu hoạt ảnh: YES]; để viewdidLoad, nó sẽ không hoạt động. – hafhadg3
Nếu bạn chỉ muốn hiển thị lần đầu tiên chế độ xem xuất hiện, chỉ cần sử dụng cờ boolean để biết đây có phải là lần đầu tiên hay không. BOOL firstTime = true; if (... && firstTime) {firstTime = false; ...} – Dimitris
Nó vẫn không hoạt động. .h BOOL tĩnh firstTime = TRUE; .m - (void) viewDidAppear: (BOOL) hoạt ảnh { \t [super viewDidAppear: animated]; \t if (firstTime = TRUE) { \t \t // Tới tục Trang \t} \t firstTime = FALSE; } tôi nhận được lỗi này: 0x018ce464 <+0665> jne 0x18ce481 <- [UIWindowController transitionViewDidComplete: fromView: toView:] + 694> xin vui lòng giúp đỡ! – hafhadg3