Container View Controller Örnekleri [kapalı]


95

Biri bana Container View Controller olarak Custom View Controller oluşturmanın herhangi bir güzel örneğini gösterebilir mi? Bulabildiğim tek belge, UIViewController Sınıf Referansındaki birkaç paragraftır . Bundan biraz daha fazla bilgiye ihtiyacım olduğunu hissediyorum ve örnek bir uygulama güzel olurdu. Google hiçbir şey ortaya koymadı.

Yöntemle özellikle ilgileniyorum:

transitionFromViewController:toViewController:duration:options:animations:completion:

Bunun için bahsedilen hypercrypt dışında başka kaynaklar buldunuz mu?
John Estropia

1
Henüz değil. Vaktim olursa bugün daha sonra başka bir kazı yapacağım. Ne kadar önemli ve yararlı olduğu düşünüldüğünde, bu konuda çok az bilgi olması tuhaf görünüyor. Acaba buggy mi ve geliştirildiğinde daha iyi belgelenecek mi?
Undistraction

3
Bu benim için son derece kafa karıştırıcı. Örneğin, görünümde yalnızca bir yerleştirme denetleyicisi olabilir. Denetleyiciyi bu kapsayıcı görünümünde değiştirmek isterseniz ne olacak?
user4951

@JanakNirmal Çok minnettarım.
Undistraction

konteyner görünümünü gizleyebilir miyim
Maulik shah

Yanıtlar:


52

Şimdiye kadar bulduğum en iyi şey WWDC 2011 Oturum Video Oturumu 102 - UIViewController Muhafazasını Uygulama .


1
Aynen. Bu benim en sevdiğim demo kod örneği değil, ancak VC kapsayıcılarını ve bellek yönetimini doğru bir şekilde uyguluyor - çocuk görüntüleme denetleyicilerinizin artık görünür olmadıklarında serbest bırakılması gerçekten önemlidir.
memmons

1
Ne yazık ki, ContainerViewController'ın nasıl kullanılacağına ilişkin demo, iPad'inde e-posta kurulumu olmadığı için işe yaramadı :-(
Ken M. Haggerty

Bu oturumda kod örneği var mı?
user4951

Şimdi örnek kodunuz var mı, buna ihtiyacım var çünkü çok denedim ama henüz çözülemedi.
iPhone Programlı Olarak

37

2
O lanet olası kod paketini nereden alacağımı belirten +1. Bakıyordum.
user4951

6
Tekrar +1, neden Apple WWDC oturum kodunu üye sayfalarına koyamıyor?
axello

+1, Paylaşmak sorun olur mu, bu kaynak kod yolunu nasıl alırım?
Janak Nirmal

1
@JanakNirmal hangi kaynak kodunu almakta zorlanıyorsunuz? WWDC kodunu almak için dmg bağlantısını takip edin ve apple geliştirici kimliğinizle oturum açın.
JosephH

17
- (void)viewDidLoad{
    [super viewDidLoad];

    // I put self in a Navigation VC so we can use its right navigationbar 
    // item for triggering the transition
    self.navigationItem.rightBarButtonItem = 
     [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                                                    target:self 
                                                    action:@selector(button:)] 
                                                                  autorelease];

    // create test1 and test2 instance (subclass UIViewController and 
    // also need to define their own nibs)
    vc1 = [[test1 alloc]initWithNibName:@"test1" bundle:nil];
    vc2 = [[test2 alloc]initWithNibName:@"test2" bundle:nil];

    //add to the container vc which is self    
    [self addChildViewController:vc1];
    [self addChildViewController:vc2];

    //the entry view (will be removed from it superview later by the api)
    [self.view addSubview:vc1.view];
}

bu IBAction, iki VC arasındaki geçişi tetikler:

-(IBAction)button:(id)sender {
    [self transitionFromViewController:vc1 
                      toViewController:vc2 
                              duration:0.5    
                               options:UIViewAnimationOptionTransitionCurlDown 
                            animations:nil 
                            completion:nil];
}

1
Bu harika bir örnek. Ancak bu durumda bellek yönetimi iyileştirilebilir: daha uygun bir çözüm için stackoverflow.com/a/8453677/849616 .
Vive

1
Yanlış olduğun için değil. Ancak [self addChildViewController: vc1]; mantıklı değil. Container VC, BİRKAÇ Container View Denetleyicisine sahip olabilir.
user4951

@Vive Projemde bellek yönetimi konusunda endişelendiğim bir noktaya ulaştım. Hafıza yönetimi açısından özellikle gönderdiğiniz bağlantının hangisinin daha iyi olduğunu söyleyebilir misiniz? Çok
yeniyim


10

4
Aslında bunu zaten bulmuştum ama ne yazık ki Ios4 hakkında yazılmış ama 5 önemli değişiklikler yaptı. Apple artık özel Görünüm Denetleyici Kapsayıcıları oluşturmayı açıkça destekliyor, ancak bunları nasıl kullanacağımızı belirlememize yardımcı olmak istemiyor gibi görünüyorlar. Yine de teşekkürler.
Undistraction

Bunu nerede söylediklerini bana gösterebilir misin? Senden şüphe etmiyorum, sadece merak ediyorum çünkü ben de bununla mücadele ediyorum.
Rui Peres

4
Telaşa gerek yok. Kapsayıcı sınıflarının kodlarını inceledim ve hiçbiri şu yöntemlerden herhangi birini kullanmıyor: addChildViewController :, removeFromParentViewController, transitionFromViewController: toViewController: süre: seçenekler: animasyonlar: tamamlama :, willMoveToParentViewController: ve güncellenmiş olan didMoveToParentViewController: UIViewController için ios5 Belgeleri.
Undistraction


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.