SORU
16 EYLÜL 2014, Salı


İPhone portre UİSplitViewController usta yerine ayrıntı VC gösterir

Ve yukarıda iOS 7 hedefleme 6, böyle büyük mükafat Evrensel bir film Şeridi kullanıyorum. Otomatik olarak iOS 7 için dahil olacak 8 artık yerli iPhone çalışan iOS desteklenen UISplitViewController bir hayata başladım. Gerçekten iyi çalışıyor, çalışan iOS 8, bölünmüş görünüm ayrıntı dikey iPhone uygulamasını başlatmak görüntülemek denetleyicisi ilk ana görünüm denetleyicisi görmeyi beklediğim görüntüleniyor hariç. Bu 7 doğru ana denetleyicisi görünümünü gösterir iOS uygulaması çalıştırdığınızda, çünkü iOS 8 ile ilgili bir hata olduğuna inanıyordu. Ama iOS 8'in GM ve bu halen sürmektedir. Nasıl olabilir ben daha çok o zaman bölünmüş görünüm denetleyicisi olacak çökmüş bir görünüm denetleyicisi görüntülenen ekran), bölünmüş görünüm denetleyicisi görüntülenir gösterir ana görünümü denetleyicisi ayrıntı?

Interface Builder içinde bu bölünmüş görünüm denetleyicisi oluşturduk. Bölünmüş görünüm denetleyicisi sekme çubuğu denetleyicisi içinde ilk görünüm denetleyicisi. Ana ve ayrıntı VCs de tablo görünümü denetleyicileri içine gömülü navigasyon denetleyicileri.

CEVAP
17 EYLÜL 2014, ÇARŞAMBA


Oh adamım, bu bana bir kaç gün için bir baş ağrısı neden oldu ve bunu yapmak için nasıl çözemedim. En kötüsü de master-detay şablon ile yeni iOS Güncellemelerinden bir proje oluşturma sadece iyi çalıştı. Neyse ki, sonunda bir çözüm buldum aslında ne kadar küçük olduğunu.

Çözüm UISplitViewControllerDelegate primaryViewControllerForCollapsingSplitViewController: yeni yöntemi uygulamak olduğunu düşündürmektedir buldum bazı mesajlar var. Boşuna denedim. Ne Elma mı master-detay şablon gibi iş uygulamaya yeni (derin bir soluk alın ki her biri) splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: temsilci yöntemi (yine UISplitViewControllerDelegate). docs, bu yönteme göre:

İster çöktü arayüzüne İlköğretim görünüm denetleyicisi ayarlamak için ve ikincil görünüm denetleyicisi dahil temsilci.

Daha fazla bilgi için tartışma bu yönteminin bir parçası okumak için emin olun.

Apple bu işleme yoludur:

- (BOOL)splitViewController:(UISplitViewController *)splitViewController
collapseSecondaryViewController:(UIViewController *)secondaryViewController
  ontoPrimaryViewController:(UIViewController *)primaryViewController {

    if ([secondaryViewController isKindOfClass:[UINavigationController class]]
        && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]]
        && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) {

        // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.
        return YES;

    } else {

        return NO;

    }
}

Bu uygulama temel olarak şunları yapar:

  1. Eğer secondaryViewController ne bekliyoruz (UINavigationController) ve bunu gösteren ne bekliyoruz (a DetailViewController -- görünümü denetleyicisi), ama hiçbir model (detailItem) "Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded."
  2. Aksi halde, dönüş "NO bölünmüş görünüm denetleyici deneyin ve ikincil görünümü çöktü arayüzü denetleyicisi içeriğini birleştirmek için"

Sonuçları portre (dikey başlangıç veya dikey -- ya da daha doğrusu kompakt sınıfa döner): iPhone için takip ediyoruz

  1. Eğer görüşünü doğru ise
    • ve bir model, ayrıntı denetleyicisi görünümü göster
    • ancak, bir dizi modeli ana görünüm denetleyicisi vardır
  2. Eğer görüşünü doğru olup olmadığını değil
    • ana kumanda görünümü göster

Net çamur gibi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • LearnKey

    LearnKey

    19 AĞUSTOS 2008