Skip to content

Commit

Permalink
Fixed ranging bug (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
bfolder committed Oct 1, 2015
1 parent 2a3cb9a commit 417c736
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions BFNavigationController/BFNavigationController.m
Original file line number Diff line number Diff line change
Expand Up @@ -266,11 +266,9 @@ - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated {
}

NSViewController *rootController = [_viewControllers objectAtIndex:0];
[_viewControllers removeObject: rootController];
[_viewControllers removeObject:rootController];

NSRange poppedRange = NSMakeRange(1, [_viewControllers count] - 1);
NSArray *dispControllers = [_viewControllers subarrayWithRange:poppedRange];

NSArray *dispControllers = [NSArray arrayWithArray:_viewControllers];
_viewControllers = [NSMutableArray arrayWithObject:rootController];

// Navigate
Expand All @@ -283,7 +281,7 @@ - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated {
}

// Return popping controller stack
return dispControllers;
return [[dispControllers reverseObjectEnumerator] allObjects];
}

///////////////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -292,15 +290,14 @@ - (NSArray *)popToViewController:(NSViewController *)viewController animated:(BO
NSViewController *visibleController = self.visibleViewController;

// Don't pop last controller
if (![_viewControllers containsObject:viewController] || visibleController == viewController) {
if (![_viewControllers containsObject: viewController] || visibleController == viewController)
return [NSArray array];
}

NSUInteger index = [_viewControllers indexOfObject:viewController];
NSUInteger index = [_viewControllers indexOfObject: viewController];
NSUInteger length = [_viewControllers count] - (index + 1);
NSRange range = NSMakeRange(index + 1, length);
NSArray *dispControllers = [_viewControllers subarrayWithRange:range];
[_viewControllers removeObjectsInArray:dispControllers];
NSArray *dispControllers = [_viewControllers subarrayWithRange: range];
[_viewControllers removeObjectsInArray: dispControllers];

// Navigate
[self _navigateFromViewController:visibleController toViewController:viewController animated:animated push:NO];
Expand All @@ -312,7 +309,7 @@ - (NSArray *)popToViewController:(NSViewController *)viewController animated:(BO
}

// Return popping controller stack
return dispControllers;
return [[dispControllers reverseObjectEnumerator] allObjects];
}

@end
Binary file not shown.

0 comments on commit 417c736

Please sign in to comment.