いつものように、私は非常に単純な問題で再び立ち往生していますが、ここではかなりストレスがたまっています。単純なケース:2つのビューを切り替えようとしていますが、横向き(左と右)のみです。rectボタンを使用して直接切り替え、同じ方法を使用してメインビューに戻ると、実際には簡単です。しかし、間にuipopoverを入れると問題が発生しました。たとえば、メイン ビューからボタンを押すと、スイッチが切り替わる前に、ポップオーバー内に rect ボタンが表示され、ボタンを押した後に 2 番目のビューが表示されました。ここから問題が始まります。2番目のビューで、デバイスを横向きから左向きに配置しようとすると、2番目のビューが動かなくなりましたが、メインビュー(バックグラウンド)は割り当てられた向きに回転しました。両方の実装ファイルで使用するコードは次のとおりです。
#import "landscapeViewController.h"
#import "popOver.h"
@interface landscapeViewController ()
@end
@implementation landscapeViewController
@synthesize myPopover;
-(IBAction)showPop:(id)sender {
popOver *popover = [[popOver alloc] init];
UIPopoverController *pop1 = [[UIPopoverController alloc] initWithContentViewController:popover];
self.myPopover = pop1;
[pop1 setDelegate:self];
[pop1 setPopoverContentSize:CGSizeMake(300,200)];
[self.myPopover presentPopoverFromRect:[popbtn bounds] inView:popbtn permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
@end
これはビューを切り替えるためのコードです:
-(IBAction)switchView:(id)sender {
secondView *second = [[secondView alloc] initWithNibName:nil bundle:nil];
second.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:second animated:YES];
[self dismissModalViewControllerAnimated:YES];
}
2 番目のビューから戻るには:
-(IBAction)switchBack:(id)sender {
landscapeViewController *land = [[landscapeViewController alloc] initWithNibName:nil bundle:nil];
land.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:land animated:YES];
}
誰かがこれで私を助けてくれることを願っています。ありがとうございます。また下手な英語でごめんなさい。