2016-09-14 3 views
0

Hi my TabBarViewController Иерархия такая. Все ViewControllers прилагаются к tabbar без navigationController.Одиночный UIViewController Автоматическое вращение внутри UITabBar

UIViewController (Home View), когда Выдвинутый это перейти на tabBar основе ViewController с индексом 0, Пользователь может вернуться из tabBarViewControllers домой viewController в любое время с помощью кнопки назад в навигационной панели.

UITabBarViewController (BaseViewController) 
    -ViewController0,(NO Navigation ViewController) 
    -ViewController1 (NO Navigation ViewController) 
    -ViewController2 (NO Navigation ViewController) 
    -ViewController3 (NO Navigation ViewController) 
    -ViewController4 (NO Navigation ViewController) 

Я использовал этот подход Tabbar на основе ViewController, потому что Tabbar не Home ViewController.

Я хочу автообоивать только ViewController2 в портрет и пейзаж. Мой проект доступен только в портретном режиме.

Я пробовал много вещей, как THIS, но это не получается.

+0

Звучит неясно, не могли бы вы подробнее рассказать? –

+0

@ Mr.UB Я обновил информацию – ChenSmile

+0

проверить это: http://stackoverflow.com/questions/39159444/how-to-get-navigation-based-template-functionality-in-swift-programming/39159793#39159793, дайте мне знать, если вы что-то понимаете. –

ответ

1

Привет После многих исследований, что я нашел, является ли это TabBar или UIVicontroller.

В соответствии с моим вопросом, мой проект находится в режиме портрета, и мне нужен только один вид. Автоматическое вращение контроллера. Ниже приведены шаги, которые мне помогли.

1 - В App delegate.h

@property (assign, nonatomic) BOOL shouldRotate; 

2 - В App Delegate.m

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED 
{ 
_shouldRotate = [[NSUserDefaults standardUserDefaults]boolForKey:@"rotateKey"]; 
NSLog(@"Did I get to InterfaceOrientation \n And the Bool is %d",_shouldRotate); 

if (self.shouldRotate == YES){ 
    return UIInterfaceOrientationMaskAll; 
}else{ 
    return UIInterfaceOrientationMaskPortrait; 
}  
} 

3 - Теперь Какой UIViewController, Вы хотите Автоповорот,

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:YES];  
    BOOL rotate = YES; 
[[NSUserDefaults standardUserDefaults]setBool:rotate forKey:@"rotateKey"]; 
[[NSUserDefaults standardUserDefaults]synchronize];  
} 

-(BOOL)shouldAutorotate 
{ 
return YES; 
} 

4 -Trick Деталь

Если вы делаете все эти шаги, контроллер представления получит автомобиль повернут, если и вернуться из текущего контроллера представления, который является ландшафтным режимом. предыдущий контроллер будет автоматически вращаться в ландшафте, и он будет поддерживать цепочку.

Таким образом, чтобы избежать этого,

Если вы собираетесь из вида контроллера для просмотра контроллер B. View Controller является ауто- вращением, а затем в View Controller A-

5 - используйте этот код -

-(void)viewDidAppear:(BOOL)animated 
{  
[super viewDidAppear:YES]; 

BOOL rotate = NO; 
[[NSUserDefaults standardUserDefaults]setBool:rotate forKey:@"rotateKey"]; 
[[NSUserDefaults standardUserDefaults]synchronize]; 
} 
-(BOOL)shouldAutorotate 
{  
return NO; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation 
{ 
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait); 
} 

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000 
- (NSUInteger)supportedInterfaceOrientations 
#else 
- (UIInterfaceOrientationMask)supportedInterfaceOrientations 
#endif 
{ 
dispatch_async(dispatch_get_main_queue(), ^{ 
    // UI Updates 

}); 
    return UIInterfaceOrientationMaskPortrait; 
} 
+0

AsSalamu Alaikum Imran не может помочь в этой проблеме с видеозвонками. Я нашел api с именем [oovoo SDK] (https://developers.oovoo.com). Надеюсь, что в другой задаче. если вы хотите использовать функцию видеовызовов в приложениях ur, используйте этот SDK. Это очень просто реализовать. Спасибо. – NAZIK

+0

@NAZIK w/a its ok bro .. – ChenSmile