2014-05-19 66 views
2

我想在我的iPhone應用程序中創建自定義容器控制器。我希望這個容器實現自定義轉換,就像iOS 7中TabBarControllers和NavigationControllers的默認行爲一樣。我已經成功地爲自己的轉換添加了自定義動畫,但是在添加交互式邏輯時遇到了問題。使用自定義容器控制器實現自定義轉換

作爲轉換過程的一部分,我必須創建一個TransitionContext。這通常由系統創建,但由於我使用自定義容器控制器,因此我創建了符合UIViewControllerContextTransitioningProtocol的自己的類。當綁在過渡手勢識別被觸發時,我試圖通過調用開始轉變:

[self.horizontalSwipeInteractionController startInteractiveTransition:transitionContext]; 

其中self.horizo​​ntalSwipeInteractionController從UIPercentDriveInteractiveTranstion繼承。不幸的是,我現在得到以下錯誤:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PrivateTransitionContext _animator]: unrecognized selector sent to instance 0x14654a80 

我不明白現在要做什麼。該文檔沒有提供有關如何使用自定義容器控制器實現自定義轉換的示例。

回答

1

不幸的是,UIPercentDriveInteractiveTranstion使用私有API。

阿列克乻tr歮-H寫關於這對他iOS Nomad blog,他通過創建一個交互式定製容器控制器散步(強調):

...我們可以看到,UIPercentDrivenInteractiveTransition會在我們的上下文中的動畫師,呼叫一種無證的方法。便利的是,所有蘋果公司製造的轉換上下文都實現了這種方法,這就是百分比驅動轉換可以激發動畫的方式。不幸的是,這意味着我們不能將該類用於我們自己的自定義容器視圖控制器。

他建議使用AWPercentDrivenInteractiveTransition作爲替代品。