2010-12-15 24 views
24

Projemde bir işlem sayfası kullandım ve göründüğünde tüm düğmeleri gösteriyorum ama son (4.) düğmesi tıklamama yanıt vermiyor (yalnızca yarım kısım cevap veriyor) ..last eylem Sayfasının Düğmesi tıklanmadı

Bunun sebebini biliyorum çünkü bir TabBarController kullandım ve şimdiki sınıf bu sekme denetleyicisinin içinde yer alıyor. yalnızca, eylem sayfasının sekmelerin üstündeki yanıt veriyor ... ve son düğmedir yukarıda ve yarım yarım

+0

sonra kolayca onu çözmeye yardımcı olabilir, senin bazı kod sonrası Lütfen uygulayan sadece UIViewController alt sınıfıdır. – jfalexvijay

+0

Bazı özel tabbar kullanıyorsanız, showFromTabBar yöntemlerinden hiçbirini kullanamazsınız. stackr bahislerin cevap verdiğini söyle! –

+0

@ WinDMak3r - Evet Biliyorum ve bu yüzden 32 tane upvot var :) – Saawan

cevap

83

showFromTabBar: yöntem deneyin. TabBar, alttaki düğmeyi yukarıda görünmesini sağlayan, ancak aslında tabbarın altında olan bir anahtar Penceresi olarak kalmak ister.

Umut bu sizin için ..

Düzenleme

Eğer peyzaj modu ve yöntemi kullanırsanız

yukarıda çalışmıyor hile yok. [Levha showFromTabBar: self.parentViewController.tabBarController.tabBar]

+0

+1 - Teşekkürler çalıştı ... – Saawan

+0

Büyük çalıştı! Thanx – Ladislav

+0

İşleri Harika Teşekkürler – pa12

3

ne yöntem, acti göstermek için kullanırım yardım lütfen tabBar üstünde olduğunu onsheet.

[actionSheet showInView:[UIApplication sharedApplication].keyWindow]; 

bende sende ve bu yöntemi kullanarak bu benim için çalıştı göstermek aynı problem vardı: ben bu kullanmanızı öneririz

+0

Kullanıyorum -------- \t UIActionSheet * actionsheet = [[UIActionSheet alloc] initWithTitle: @ "" Select feed type "delege: self cancelButtonTitle: nil destructiveButtonTitle: nil otherButtonTitles: @ "first", @ "2nd", @ "3rd", @ "4th", nil]; \t [actionsheet showInView: self.view]; \t [actionsheet release]; – Saawan

+0

showInView yerine önerilen yöntemi kullanmayı deneyin. Anladığım kadarıyla sizin durumunuzu tam olarak ele almak için tasarlandı (kendim kullanmamıştım ...) – Vladimir

+0

önerinize göre aşağıdaki yöntemi kullandım ...... [actionheet showFromTabBar: delegate.tabC.tabBar]; ... burada temsilci benim delegate sınıfının nesnesidir tabbarController tabC ............... Ancak programım CRASHED .... – Saawan

0

asıl sorun geliyor, Arayüz peyzaja döndürülmüş ve zaman ana görünümü denetleyicisi sahiptir

@Vinh Tran: Aşağıdaki düzeltmeyi kullanabilirsiniz bunun üzerinde bir dönüşüm. İnan bana, bu gerçekçi bir senaryo, doh. Daha sonra eylem sayfası kırpılır ve dönüştürüldüğü için parentViewController'ı kullanamazsınız. Tüm bu sorunları önlemek için çözüm, yeni bir pencere oluşturmak, rootViewController olarak döndürülebilir bir görünüm denetleyicisi eklemek ve sayfayı görüntülemek için görünümünü kullanmaktır.

CGRect applicationRect = [[UIScreen mainScreen] bounds]; 
UIWindow* actionSheetWindow = [[UIWindow alloc] initWithFrame:applicationRect]; 
RotationViewController* rootViewController = [[RotationViewController alloc] initWithNibName:nil bundle:nil]; 
actionSheetWindow.rootViewController = rootViewController; 
[rootViewController release]; 
actionSheetWindow.hidden = NO; 

UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil]; 
[actionSheet setCancelButtonWithTitle:@"Cancel" handler:^{ 
    actionSheetWindow.hidden = YES; 
    [actionSheetWindow release]; 
}]; 

[actionSheet showInView:rootViewController.view]; 

Yukarıdaki kod BlocksKit kullanır, ancak actionSheet temsilci ve Örnek özelliklerini kullanarak da yapabilirsiniz.

RotationViewController

- (void) viewDidLoad { 
    [super viewDidLoad]; 
    self.view.backgroundColor = [UIColor clearColor]; 
    self.view.opaque = NO; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 
İlgili konular