我一直在使用应用程序遇到问题,并获得某些视图轮换。
我已经知道标签栏控制器中的任何视图都无法旋转,除非允许所有旋转。我也知道除非允许最顶层的视图旋转,否则导航控制器中的任何视图都不能旋转。
我主要使用IB来设置我的应用程序。
在MainWindow.xib
我有AppDelegate Object
,Window
,TabBarController
,然后是单独的UIViewController
。
在标签栏的其中一个标签栏中,我有一个链接到UIButton的IBAction,代码如下:
-(IBAction)stuff {
[self presentViewController:buletinss animated:YES completion:nil];
}
视图控制器在头文件中声明为IBOutlet
,并从该选项卡类链接到UIViewControlle
r。在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
和.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
答案 0 :(得分:1)
如果没有看到你的项目,很难知道发生了什么。你做的很奇怪:为什么要从笔尖加载视图控制器?你在说:
IBOutlet UIViewController *buletinss;
为什么呢?你为什么没有明确地实例化BulletinViewController并将ivar设置为那个?
我打赌问题是在nib中,这个对象是而不是一个BulletinViewController。它可能只是一个通用的UIViewController。因此,您的BulletinViewController代码无关紧要;它都没有运行过。相反,你有一个只能旋转到肖像的通用UIViewController。但这只是猜测。