8

私は、ストーリーボード経由でSWRevealViewControllerをUITabbarControllerで実装します。 SWRevealViewControllerを最初のUITabBarItemにのみ表示したいのですが、他のUITabBarItemではSWRevealViewControllerを開こうとしません。 しかし、UITabBarの位置はSWRevealViewControllerが表示されている間はviewcontrollerのように変化しません。SWRevealViewControllerを1つのUITabBarItemに実装する

私を助けてください。

enter image description here

ストーリーボード構造

enter image description here
+0

。詳細は、https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.htmlおよび例http://www.thinkandbuild.it/working-with-custom-container-view-コントローラー/ –

+0

@Gagan_iOS使用方法を理解できません。詳しく教えてください。 –

+0

OK、UITabBarControllerを使用していて、各タブにはUIViewControllerがあります。したがって、特定のタブのUIViewControllerにUIContainerViewを追加する必要があります。追加する例は次のとおりです。 http://mobileoop.com/how-to-use-container-view-controllerこのコードは、あなたのタブのUIViewControllerに実装するだけです。 –

答えて

1

Iは、SWRevealViewControllerデリゲートメソッドを使用して手動UITabbarの変化位置によって問題を解決します。 このコードをMenuViewControllerに入れてください。あなたのアプリでUIContainerViewControllerを使用することができます

MenuViewController.m

- (void) viewDidLoad { 
    [super viewDidLoad]; 

    UITabBarController *tbc = (UITabBarController *)[[[[UIApplication sharedApplication]delegate]window]rootViewController]; 
    self.tabBar = tbc.tabBar; 

    _tabBar.frame = CGRectMake(self.revealViewController.rearViewRevealWidth, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height); 
    self.revealViewController.delegate = self; 
} 

- (void) revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position { 
    if (position == FrontViewPositionRight) { 
     _tabBar.frame = CGRectMake(self.revealViewController.rearViewRevealWidth, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height); 
    } 
    else { 
     _tabBar.frame = CGRectMake(0, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height); 
    } 
} 

- (void)revealController:(SWRevealViewController *)revealController panGestureMovedToLocation:(CGFloat)location progress:(CGFloat)progress overProgress:(CGFloat)overProgress { 
    _tabBar.frame = CGRectMake(self.revealViewController.rearViewRevealWidth * progress, _tabBar.frame.origin.y, _tabBar.frame.size.width, _tabBar.frame.size.height); 
} 
関連する問題