* Returns the view that will be entered considering the transition instructions. * * @param ti The instructions. * @param leavingView The view being left or undefined if none. * * @returns The view that will be entered, undefined if none.
(
ti: TransitionInstruction,
leavingView: ViewController | undefined
)
| 754 | * @returns The view that will be entered, undefined if none. |
| 755 | */ |
| 756 | private getEnteringView( |
| 757 | ti: TransitionInstruction, |
| 758 | leavingView: ViewController | undefined |
| 759 | ): ViewController | undefined { |
| 760 | // The last inserted view will be entered when view are inserted. |
| 761 | const insertViews = ti.insertViews; |
| 762 | if (insertViews !== undefined) { |
| 763 | return insertViews[insertViews.length - 1]; |
| 764 | } |
| 765 | |
| 766 | // When views are deleted, we will enter the last view that is not removed and not the view being left. |
| 767 | const removeStart = ti.removeStart; |
| 768 | if (removeStart !== undefined) { |
| 769 | const views = this.views; |
| 770 | const removeEnd = removeStart + ti.removeCount!; |
| 771 | for (let i = views.length - 1; i >= 0; i--) { |
| 772 | const view = views[i]; |
| 773 | if ((i < removeStart || i >= removeEnd) && view !== leavingView) { |
| 774 | return view; |
| 775 | } |
| 776 | } |
| 777 | } |
| 778 | |
| 779 | return undefined; |
| 780 | } |
| 781 | |
| 782 | /** |
| 783 | * Adds and Removes the views from the navigation stack. |