0

我一直在使用应用程序时遇到问题,并且要旋转某些视图。

我已经知道标签栏控制器中的任何视图都不能旋转,除非允许所有视图旋转。我也知道导航控制器中的任何视图都不能旋转,除非最上面的视图被允许旋转。

我主要使用 IB 来设置我的应用程序。

MainWindow.xib我有AppDelegate Object, Window, TabBarController, 然后是一个单独的UIViewController.

在选项卡栏的其中一个选项卡中,我有一个 IBAction 链接到 UIButton,代码如下:

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

视图控制器在头文件中声明为IBOutlet,并从该选项卡类链接到UIViewController。然后在 IB 中,我将该视图控制器的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

还有他们

#import "BulletinViewController.h"

@implementation BulletinViewController

-(IBAction)stuff {

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

现在它呈现的视图的 .h 和 .m

#import <UIKit/UIKit.h>

@interface TestBulletinViewController : UIViewController

@end

还有他们

#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

尝试更改此代码

[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 回答
1

如果没有看到您的项目,很难知道发生了什么。您正在做一件非常奇怪的事情:为什么要从 nib 加载视图控制器?你是说:

IBOutlet UIViewController *buletinss;

为什么?为什么不显式实例化 BulletinViewController 并将 ivar 设置为该值?

我敢打赌,问题在于在笔尖中,这个对象不是BulletinViewController。它可能只是一个通用的 UIViewController。因此,您的 BulletinViewController 代码无关紧要;它从来没有运行过。相反,你有一个通用的 UIViewController 只能旋转到纵向。但这只是一个猜测。

于 2012-09-21T00:54:41.520 回答