1

いつものように、私は非常に単純な問題で再び立ち往生していますが、ここではかなりストレスがたまっています。単純なケース: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];


}

誰かがこれで私を助けてくれることを願っています。ありがとうございます。また下手な英語でごめんなさい。

4

0 に答える 0