2016-04-14 9 views
2

私のプロジェクトでトップバー上のユーザのスワイプが一つの画面が下のアニメーションをトップに表示されるときの機能があるプッシュのUIViewController - 下

2つのビューコントローラ oneviewcontroller.m

があります。
- (void)swipe 
{ 
    listViewController *list_obj=[[listViewController alloc] initWithNibName:@"listViewController" bundle:NULL]; 
    UIViewAnimationTransition trans = UIViewAnimationTransitionCurlUp; 
    [UIView beginAnimations: nil context: nil]; 
    [UIView setAnimationTransition: trans forView: [self.view window] cache: YES]; 
    [self.navigationController pushViewController:list_obj animated:YES]; 
    [UIView commitAnimations]; 
} 

しかし、これは私が プッシュからのナビゲーションを実装したい上下

からアニメーションを与えるものではありません:=トップ - ボトム ポップ: =下 - トップ

はあなたに

答えて

20

ありがとう、次のようにあなたが下にビューコントローラトップをプッシュすることができ、私を助けてください:

のObj-C:

- (void) pushVC:(UIViewController)dstVC { 
    CATransition transition = [CATransition animation]; 
    transition.duration = 0.5; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionPush; 
    transition.subtype = kCATransitionFromTop; 
    [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; 
    [self pushViewController:dstVC animated:NO]; 
} 

に以下のコードを使用しますポップビューコントローラーの下から上へ:

- (void) popVC { 
    CATransition transition = [CATransition animation]; 
    transition.duration = 0.5; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionFade; 
    transition.subtype = kCATransitionFromBottom; 
    [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; 
    [self popViewControllerAnimated:NO]; 
} 

スイフト3:

func open() { 
    let settingsVC = SettingsVC() 
    let transition = CATransition() 
    transition.duration = 0.5 
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
    transition.type = kCATransitionPush; 
    transition.subtype = kCATransitionFromTop; 
    navigationController?.view.layer.add(transition, forKey: kCATransition) 
    navigationController?.pushViewController(settingsVC, animated: false) 
    } 

    func close() { 
    let transition = CATransition() 
    transition.duration = 0.5 
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
    transition.type = kCATransitionFade 
    transition.subtype = kCATransitionFromBottom 
    navigationController?.view.layer.add(transition, forKey:kCATransition) 
    let _ = navigationController?.popViewController(animated: false) 
    } 
+0

回答を受け入れました。それはうまく動作します。 –

+0

@iOSdeveloperありがとう:-) – Microprocessor8085

+0

私はupvotedしていますが、私はまだ投票を受ける資格がありません。しかし、私はその評判を得ると間違いなくそれを行います。 –

関連する問題