Burada küçük bir sorun yaşıyorum. Aynı senaryoda iki görüntü denetleyicim var (MainStoryboard -> Dikey modda Calc view Controller ve yatay modda Calc view controller). İlk olarak shouldAutoRotate
için bir bool
oluşturduğumda döndürdüm, ancak bazı düğmeler vb. Olmasını beklediğiniz yerde olmadığından, diğer bir deyişle tüm bunlar her zaman peyzaj modu. Şimdi, Manzara modunda ve ana Portre modunda 2 görüntü denetleyicisi oluşturdum. Şimdi anahtar, bu iki kontrol ünitesi arasında dönüş yapmaktır. CalculatorViewController.mi içinde Aynı storyboard üzerinde 2 view controller'lar arasında geçiş yapmak, willAutorotateTo ... kullanarak rotasyonda çalışmaz,
GÜNCELLEME
olduğunu iOS 6'da " i dönmesi üzerine çağrılacak i hareketsiz cant doğru görünüm denetleyicisi almak iOS 6 ilgili doğru yöntemler kullanıyorum düşünüyorum rağmen doğru yoldan tür "Ancak bu
@synthesize portraitView, landscapeView;
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations:toInterfaceOrientation
{
if(UIInterfaceOrientationMaskAllButUpsideDown)
{
if (UIInterfaceOrientationPortrait)
{
self.view = portraitView;
}
else if (UIInterfaceOrientationLandscapeLeft)
{
self.view = landscapeView;
}
}
return YES;
}
olacağını
ve CalculatorViewController.h
@interface CalculatorViewController : UIViewController {
IBOutlet UIView *portraitView; // declaring view - portrait
IBOutlet UIView *landscapeView; // declaring view - landscape
//rest of irrelevant code below
}
@property (nonatomic, retain) UIView *portraitView;
@property (nonatomic, retain) UIView *landscapeView;
Hemen şimdi alakasız olan bu 2 beyaz denetleyicileri görmezden. Resmi gönderme kaç kez bu çift gibi şeyler yaptığım zaman
willOutorotateFromInterfaceOrientation: adlı bir yöntem yoktur. Bu bir yazım hatası mı, yoksa bu bile derleme değil mi? – rdelmar
@rdelmar Emmm, kodun ilk parçasında - (bool) willOutorotate .... 'a bakarsanız bir yöntem var mı? –
Kodunuzda görüyorum. Çağrılıyor mu? Apple'ın belgelerinde böyle bir yöntem bulamıyorum. Varsa, iOS öncesi 5 olmalıdır. – rdelmar