0

私はアプリで永遠に問題を抱えており、特定のビューを回転させています。

ALLが回転を許可されていない限り、タブバーコントローラーのビューは回転できないことをすでに知っています。また、最上部のビューの回転が許可されていない限り、ナビゲーションコントローラー内のビューは回転できないことも知っています。

私は主にアプリのセットアップにIBを使用しました。

MainWindow.xib私には、、、、、AppDelegate ObjectそしてWindow別のTabBarControllerがありUIViewControllerます。

タブバーのタブの1つに、次のコードでUIButtonにリンクされたIBActionがあります。

-(IBAction)stuff {
[self presentViewController:buletinss animated:YES completion:nil];
}

ビューコントローラはヘッダーファイルでとして宣言され、IBOutletそのタブクラスからUIViewControllerにリンクされます。次に、IBで、そのView Controllerのクラスを設定したUIViewControllerクラスに設定し、戻っYESて回転できるようにします。

ただし、それでも回転しません。

タブバーの一部ではなく、ナビゲーションコントローラーから押されていないので、回転させてもらえると思っていたのですが、運が悪かったです。助けてください?

完全なコードは次のとおりです。

まず、ボタンのあるビューの.hと.m:

#import <UIKit/UIKit.h>

@interface BulletinViewController : UIViewController {
IBOutlet UIWebView *worship;
IBOutlet UIActivityIndicatorView *activity;
NSTimer *timer;
IBOutlet UIViewController *buletinss;

}
-(IBAction)stuff;
@property (nonatomic, retain) UIActivityIndicatorView *activity;

@end

と.m

#import "BulletinViewController.h"

@implementation BulletinViewController

-(IBAction)stuff {

[self presentViewController:buletinss animated:YES completion:nil];
}

これで、表示されているビューの.hと.mが表示されます。

#import <UIKit/UIKit.h>

@interface TestBulletinViewController : UIViewController

@end

と.m

#import "TestBulletinViewController.h"

@implementation TestBulletinViewController


-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation         {
return YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end
4

2 に答える 2

1

あなたのプロジェクトを見ずに何が起こっているのかを知るのは難しいです。あなたは非常に奇妙なことをしています:なぜあなたはペン先からビューコントローラーをロードしているのですか?あなたが言っています:

IBOutlet UIViewController *buletinss;

なんで?BulletinViewControllerを明示的にインスタンス化して、ivarをそれに設定しないのはなぜですか?

問題は、ペン先では、このオブジェクトがBulletinViewControllerではないことだと思います。おそらく単なる汎用UIViewControllerです。したがって、BulletinViewControllerコードは無関係です。どれも実行されません。代わりに、縦向きにのみ回転する汎用UIViewControllerがあります。しかし、それは単なる推測です。

于 2012-09-21T00:54:41.520 に答える
1

このコードを変更してみてください

[self presentViewController:buletinss animated:YES completion:nil];

[self presentModalViewController:buletinss animated:YES];

UPD: iOS 6では、次のことを行う必要があります。

1)

交換

[window addSubview:buletinss.view];

window.rootViewController = buletinss;

2)

このコード行を追加します

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}
于 2012-09-21T02:58:00.343 に答える