SORU
31 Ocak 2012, Salı


"Dengesiz aramaları için başlangıç-bitiş görünüm geçişler için DetailViewController" <pre><kod>zaman bastırıyor. daha fazla ayrıntı</code></pre> görünüm denetleyicisi

Tablo görünüm içeren görünüm denetleyicisi var, tablodaki öğeler seçilebilir ve bir ayrıntı usulüne uygun olarak oluşturulan denetleyicisi görüntüleyin.

Öğeler tablo öğeleri temsil eden bir zaman tabanlı tetikleyici ile ilişkili ve yerel bir bildirimdir planlanan her madde için, eğer app ön planda olduğunda yerel bir bildirim süresi dolduktan sonra detay görüntülemek için Öğe otomatik olarak görüntülenir.

İki bildirim görüşlerini sonuçları konsol günlükleri gerektiği ve buna ek olarak görüntülenen bir varlık değil, aynı zamanda sona tezahür eden bir sorunum var: "NNN için Görünüm geçişler son/başlamak için dengesiz aramalar" nerede NNN benim ayrıntı denetleyicisi görünümü.

Tablo görünümü denetleyicisi aşağıdaki gibi oluşturulur

 self.tableViewController = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil];
 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.tableViewController];
 self.window.rootViewController = navController;

Yerel bir bildirim süresi dolduğunda ve didReceiveLocalNotification: ve tablo görünümü denetleyicisi için dinliyor. app yayınları bir bildirim NSNotifcationCenter postNotificationName kullanarak çağrılır: Tablo görünümü denetleyicisi bu bildirimi aldığında, detay görünümü denetleyicisi oluşturur ve bunun gibi yığına iter:

[self.navigationController pushViewController:detailViewController animated:YES]; 

Okumuştum bir yerde orada bir sorun olabilir eğer bir görünüm denetleyicisi iter başka bir görünüm denetleyicisi zaman kendisi değil, üste yığın - ben de öyle düşünmüştüm bu olmalı sorun, çünkü zaman tablo görünümü denetleyicisi aldığı 2. bildirim olacak artık üst gezinti yığını çünkü olacak daha önce sadece itti bir ayrıntı görünümü denetleyicisi üzerine yığın zaman ilk bildirim geldi.

Bu itme kodu değiştirdim:

[[self.navigationController topViewController].navigationController pushViewController:detailController animated:YES];

Ama fark etmezdi.

Ben sonraki ilk ayrıntı görünümü denetleyicisi tam 2 önce görüntüleme şansını elde değildi, çünkü bu bir sorun olabileceğini düşündüm görünüm denetleyicisi itildi - kullanarak gönderme: benim app bildirim değiştirdim

[[NSNotificationCenter defaultCenter] postNotificationName: 

için

[[NSNotificationQueue defaultQueue] enqueueNotification: postingStyle:NSPostWhenIdle]

O iter app döngü aynı iteraction içinde ortaya çıkmazdı. Ama fark etmezdi, ne de ayrıntılı görünüm game itici bir gecikme tanıtmak için çalışıyor

double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    [[self.navigationController topViewController].navigationController     pushViewController:detailController animated:YES]; 
});

Sorunun ne olduğunu ya da ne yanında denemek için, herhangi bir fikir hakkında hiçbir fikrim yok.

CEVAP
1 ŞUBAT 2012, ÇARŞAMBA


"Dengesiz görünüm geçişler son/başlamak için çağrı"

çalıştığınızda oluşur ve geçerli görünümü önce yeni bir viewcontroller görüntü denetleyicisi görüntüleme bitti. ViewWillAppear giderek çoğalır.

Temelde hemen hemen aynı zamanda yığının iki görünümü denetleyicileri itmek için çalışıyoruz. Görüntülenmesi gereken ayrıntı görünümler listesini tutar tableview kontrol sisteminde bir sıra korumak öneririz. Görüntüleme ihtiyacı olan herhangi bir sıraya detaylar olup olmadığını geçerli ayrıntı görünümünden yığın ve çıkışta kontrol edin teker teker bas.

Navigasyon bu tür bir kullanıcı için kafa karıştırıcı olacak. Daha iyi ayrıntı görünümü birden çok öğe destek haline getirmesi için olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BaaaStuds's channel

    BaaaStuds's

    10 Mart 2009
  • efaustus9

    efaustus9

    16 HAZİRAN 2006
  • stewmurray47

    stewmurray47

    1 Kasım 2006