2012-05-31 25 views
5

Gezinme öğesiyle (ekran görüntüsünde sağdan görünüm) kalıcı bir görünüm oluşturmak istiyorum ve bunun bir 'geri düğmesi' olmasını istiyorum. Uygulamam, TabBar uygulamasıdır ve bu görünümün bir sekme çubuğuna sahip olmasını istemiyorum, ancak "push" türüne benzer bir segue ile önceki bir görünümü (ekran görüntüsünde sol görünüm) yüklemek istiyorum. Yalnızca soldan görünümüne doğru gezinmeyi sağlamak için itme segue oluşturabilirim, modal görünüm olarak yüklenmişse, NavigationBar & TabBar gitti. Bunun için herhangi bir geçici çözüm var mı? Şimdiden teşekkürler!Gezinme çubuğu ve geri düğmesi ile modlu görünüm oluşturma

Here's my screenshot

+0

Kalıcı bir görünüm (sağda) sunma ve geri solda gösterilen UITableView'a geri dönmek için geri düğmesini bırakmanın nesi yanlış? – tarheel

+0

Çünkü bu, dinamik içeriğe sahip bir UIWebView ve geri düğmesinin gezinme çubuğunda olmasını istiyorum –

cevap

12

Bir çubuk düğmesiyle yeni görünümde bir Navbar yerleştirin. Çubuk düğme öğesinden, çubuk düğmesinin öğesinden, görünüm denetleyicisinin .h'ye sürüklenmesiyle çubuk düğme öğesi için bir eylem oluşturun.

@protocol SecondViewControllerDelegate <NSObject> 

-(void) done; 

@end 

@interface SecondViewController : UIViewController { 
    ... 
    id delegate; 
} 

... 

@property (nonatomic, assign) id<SecondViewControllerDelegate> delegate; 

-(IBAction)done:(id)sender; //this will be linked to your nav bar button. 
@end 
: Bu durumda, böyle yapılan bir yöntemle bir protokol oluşturmak düğmesine basıldığında ilk kontrolörü anlatmak için bir temsilci ve protokol yöntemi kullanmak ve ikinci görünümünde Yani [self dismissModalViewControllerAnimated:YES];

kullanmak olabilir

sonra düğmesinden sizin eyleminde bu çağrı:

-(IBAction)done:(id)sender{ 
    [self.delegate done]; 
} 

ilk görünüm denetleyicisi protokolünü <SecondViewControllerDelegate>

uygulamak gerekecektir

daha sonra ilk görüş kontrol cihazınızda, görüşmeden önce ikinci görüş kontrol cihazınız için bir temsilci olarak ayarlayın.

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"Second View Modal Segue Identifier"]) 
    { 
     SecondViewController *viewController = segue.destinationViewController; 
     viewController.delegate = self; 
    } 
} 

son olarak, ilk görünümü kumandam temsilci yapılabilir çağrıyı yakalamak:

-(void) done 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Ben bunu yapmış nasıl. Protokoller ve delegelerle çok fazla tecrübeniz yoksa, ilk başta kafa karıştırıcı gibi görünebilir, ama benim için iyi çalıştı.

+0

Herhangi bir yazım hatası varsa, lütfen bana hemen hepsini sıfırdan yazdım. –

6

Yeni navigasyon kumanda içinde sağ yandan görünüm denetleyicisi sarmak gerekir. IB'de, onu seçin ve Editor -> Embed In -> Navigation Controller menü öğesini seçin ve IB, kalbinizin içeriğine göre özelleştirebileceğiniz bir gezinme çubuğu gösterecektir.

+0

Bu, kalıcı bir görünüm olarak sunalım mı? –

+0

Evet, gerçekten. IPad'de bunun daha küçük, merkezi bir görünüm olmasını sağlayabilirsiniz. Atmak için nav çubuğundaki kendi düğmelerinizi uygulamak zorundasınız. – Mundi

+1

Teşekkürler. IOS 7'de navigasyon çubuğunu sadece sürüklerseniz, "zaman çubuğu" nun arka planı, gezinme çubuğunun aksine gri görünmeyeceğinden kötü görünecektir. Ancak bu yöntem sorunu çözdü ve daha zarif görünüyor. –

İlgili konular