0

横向きと縦向きの両方をサポートする iOS アプリケーションを作成しています。したがって、これらの 2 つの向きに 2 つのビューを使用しました。IBoutletsしかし、今の問題は、ファイルの所有者に接続する方法がわからないことです。IBOutlet両方のモードに1 つのセットを使用することはできませんか。両方のモードをサポートするアプリケーションを実行したことがありません。どうすればこの問題を解決できるか教えてください。

ありがとう

4

1 に答える 1

0

最後に、この方法に従ってこれを見つけました。2 つのビューを作成し、個別の IBOutlets セットを定義しました。方向を変更すると、あるモードの値が他のモードのアウトレットの値に割り当てられました。これは(void)didRotate:(NSNotification *)notification

`

 -(void)didRotate:(NSNotification *)notification

{

UIDeviceOrientation newOrientation = [[UIDevice currentDevice] orientation];
if (newOrientation != UIDeviceOrientationUnknown && newOrientation != UIDeviceOrientationFaceUp && newOrientation != UIDeviceOrientationFaceDown)
{
    if (orientation != newOrientation)
    {
        //ORIENTATION HAS CHANGED
        NSLog(@"Changed Orientation");

        // Do orientation logic
        if (
            ((newOrientation == UIDeviceOrientationLandscapeLeft || newOrientation == UIDeviceOrientationLandscapeRight)) &&
            ((orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown))
            )
        {
            NSLog(@"Changed Orientation To Landscape");
            self.orientationMode=@"landscape";
            self.txtInsidernameLandscape.text=self.txtInsiderName.text;
            self.txtCompanynameLandscape.text=self.txtCompanyName.text;
            self.txtAddressLandscape.text=self.txtAddress.text;
            self.txtPhoneLandscape.text=self.txtTelephone.text;
            self.txtEmailLandscape.text=self.txtEmail.text;

            // Clear the current view and insert the orientation specific view.
            [self clearCurrentView];
            [self.view insertSubview:mainLandscapeView atIndex:0];

            //Copy object states between views
            //SomeTextControlL.text = SomeTextControlP.text;
        }
        else if (
                 ((newOrientation == UIDeviceOrientationPortrait || newOrientation == UIDeviceOrientationPortraitUpsideDown)) &&
                 ((orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight))
                 )
        {
            NSLog(@"Changed Orientation To Portrait");
            self.orientationMode=@"portrait";
            self.txtInsiderName.text=self.txtInsidernameLandscape.text;
            self.txtCompanyName.text=self.txtCompanynameLandscape.text;
            self.txtAddress.text=self.txtAddressLandscape.text;
            self.txtPhoneLandscape.text=self.txtPhoneLandscape.text;
            self.txtEmail.text=self.txtEmailLandscape.text;

            // Clear the current view and insert the orientation specific view.
            [self clearCurrentView];
            [self.view insertSubview:mainPortraitView atIndex:0];

            //Copy object states between views
            //SomeTextControlP.text = SomeTextControlL.text;
        }
        orientation = newOrientation;
    }

}

} `

于 2012-10-25T09:35:20.647 に答える