我有一个仅在纵向模式下工作的应用程序,但是,有一个视图需要同时支持纵向和横向模式。无论何时我从这个视图返回,应用程序的其余部分都会搞乱。
需要支持两种方向的视图包含用于播放实时流的webview。
简单设置shouldAutorotateToInterfaceOrientation不起作用。提出模态视图控制器的技巧。删除和插入根视图的技巧也不起作用。
我害怕使用[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait](实际上有效),因为它是私有api。
答案 0 :(得分:0)
我的应用程序全部以纵向方式工作,只有一个全屏照片视图支持横向方向。所以我以模态方式和我的FullscreenViewController.m
呈现这个全屏视图- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ([[UIApplication sharedApplication] statusBarOrientation]);
}
希望这可能有用
答案 1 :(得分:0)
实际上,删除和插入此处提到的窗口视图的第一个视图的方法确实有效! iOS portrait only app returns from UIWebview youtube in landscape
我只是因为某种原因不需要在窗口子视图中询问第一个视图。我需要自己提供root视图。
所以我的解决方案是在支持两种方向的视图控制器中实现以下方法:
-(void)viewWillAppear:(BOOL)animated
{
m_b_avoid_landscape_orinetation = NO;
[super viewWillAppear:animated];
}
-(void)viewWillDisappear:(BOOL)animated
{
m_b_avoid_landscape_orinetation = YES;
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
[[self getTabBar].view removeFromSuperview];
[window addSubview:[self getTabBar].view];
[super viewWillDisappear:animated];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
if (m_b_avoid_landscape_orinetation)
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
else
return YES;
}
[self getTabBar]提供我的自定义标签栏,作为窗口子视图中的第一个视图。
编辑因此,对于iOS 6,它不再起作用了。我使用解决方案插入和删除模式对话框,如其他地方提到的新的supportedInterfaceOrientations方法。
-(void)goBack
{
m_b_avoid_landscpae_orinetation = YES;
UIViewController *viewController = [[UIViewController alloc] init];
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
[window.rootViewController presentViewController:viewController animated:NO completion:^{
[viewController dismissModalViewControllerAnimated:NO];
}];
[self.navigationController popViewControllerAnimated:YES];
}
-(NSUInteger)supportedInterfaceOrientations
{
if (m_b_avoid_landscpae_orinetation)
return UIInterfaceOrientationMaskPortrait;
return UIInterfaceOrientationMaskAllButUpsideDown;
}
答案 2 :(得分:0)
您可以在[[UIDevice currentDevice] setOrientation:orientation]
或viewWillAppear:
中使用viewDidAppear:
来强制应用轮播到所需的方向。但是,那个私人电话,并不确定Apple是否会批准你的应用程序:)(我的批准)。祝你好运!
答案 3 :(得分:0)
select * from person where (firstName like
'%$stringVariable%' OR lastName like '%$stringVariable');