fix missing prepare statements
This commit is contained in:
parent
c093a224b4
commit
374c83bddd
@ -137,6 +137,7 @@
|
|||||||
if (self.navigationObject.navigationController.viewControllers.count > 1) {
|
if (self.navigationObject.navigationController.viewControllers.count > 1) {
|
||||||
// Although the post animation state is currently fine with pop, store anyway as a precaution
|
// Although the post animation state is currently fine with pop, store anyway as a precaution
|
||||||
self.futureViewControllers = [self.navigationObject.navigationController.viewControllers subarrayWithRange:NSMakeRange(0, self.navigationObject.navigationController.viewControllers.count - 1)];
|
self.futureViewControllers = [self.navigationObject.navigationController.viewControllers subarrayWithRange:NSMakeRange(0, self.navigationObject.navigationController.viewControllers.count - 1)];
|
||||||
|
[self prepareDisplay];
|
||||||
[self.navigationObject.navigationController popViewControllerAnimated:self.navigationObject.animated];
|
[self.navigationObject.navigationController popViewControllerAnimated:self.navigationObject.animated];
|
||||||
} else {
|
} else {
|
||||||
[self markAsFinished];
|
[self markAsFinished];
|
||||||
@ -183,7 +184,7 @@
|
|||||||
// Store post animation state.
|
// Store post animation state.
|
||||||
NSInteger index = [[self.navigationObject.navigationController viewControllers] indexOfObject:self.navigationObject.viewController];
|
NSInteger index = [[self.navigationObject.navigationController viewControllers] indexOfObject:self.navigationObject.viewController];
|
||||||
self.futureViewControllers = [self.navigationObject.navigationController.viewControllers subarrayWithRange:NSMakeRange(0, index + 1)];
|
self.futureViewControllers = [self.navigationObject.navigationController.viewControllers subarrayWithRange:NSMakeRange(0, index + 1)];
|
||||||
|
[self prepareDisplay];
|
||||||
[self.navigationObject.navigationController popToViewController:self.navigationObject.viewController animated:self.navigationObject.animated];
|
[self.navigationObject.navigationController popToViewController:self.navigationObject.viewController animated:self.navigationObject.animated];
|
||||||
} else {
|
} else {
|
||||||
[self markAsFinished];
|
[self markAsFinished];
|
||||||
@ -195,7 +196,7 @@
|
|||||||
if (self.navigationObject.navigationController.viewControllers.count > 1) {
|
if (self.navigationObject.navigationController.viewControllers.count > 1) {
|
||||||
// Store post animation state.
|
// Store post animation state.
|
||||||
self.futureViewControllers = @[self.navigationObject.navigationController.viewControllers.firstObject];
|
self.futureViewControllers = @[self.navigationObject.navigationController.viewControllers.firstObject];
|
||||||
|
[self prepareDisplay];
|
||||||
[self.navigationObject.navigationController popToRootViewControllerAnimated:self.navigationObject.animated];
|
[self.navigationObject.navigationController popToRootViewControllerAnimated:self.navigationObject.animated];
|
||||||
} else {
|
} else {
|
||||||
[self markAsFinished];
|
[self markAsFinished];
|
||||||
@ -213,14 +214,14 @@
|
|||||||
- (void)pushViewController {
|
- (void)pushViewController {
|
||||||
// Although the post animation state is currently fine with push, store anyway as a precaution
|
// Although the post animation state is currently fine with push, store anyway as a precaution
|
||||||
self.futureViewControllers = [self.navigationObject.navigationController.viewControllers arrayByAddingObject:self.navigationObject.viewController];
|
self.futureViewControllers = [self.navigationObject.navigationController.viewControllers arrayByAddingObject:self.navigationObject.viewController];
|
||||||
[self navigationController:self.navigationObject.navigationController prepareDisplayForViewController:self.navigationObject.viewController];
|
[self prepareDisplay];
|
||||||
[self.navigationObject.navigationController pushViewController:self.navigationObject.viewController animated:self.navigationObject.animated];
|
[self.navigationObject.navigationController pushViewController:self.navigationObject.viewController animated:self.navigationObject.animated];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setViewControllers:(NSArray *)viewControllers {
|
- (void)setViewControllers:(NSArray *)viewControllers {
|
||||||
self.futureViewControllers = viewControllers;
|
|
||||||
if (![self.navigationObject.navigationController.viewControllers isEqualToArray:viewControllers]) {
|
if (![self.navigationObject.navigationController.viewControllers isEqualToArray:viewControllers]) {
|
||||||
[self navigationController:self.navigationObject.navigationController prepareDisplayForViewController:viewControllers.lastObject];
|
self.futureViewControllers = viewControllers;
|
||||||
|
[self prepareDisplay];
|
||||||
[self.navigationObject.navigationController setViewControllers:viewControllers animated:self.navigationObject.animated];
|
[self.navigationObject.navigationController setViewControllers:viewControllers animated:self.navigationObject.animated];
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -230,8 +231,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Notify delegates to prepare for the controller to be added to the navigation controller.
|
// Notify delegates to prepare for the controller to be added to the navigation controller.
|
||||||
- (void)navigationController:(UINavigationController *)navigationController prepareDisplayForViewController:(UIViewController *)viewController {
|
- (void)prepareDisplay {
|
||||||
|
UINavigationController *navigationController = self.navigationObject.navigationController;
|
||||||
|
UIViewController *viewController = self.futureViewControllers.lastObject;
|
||||||
if (self.delegate && [self.delegate respondsToSelector:@selector(navigationController:prepareDisplayForViewController:)]) {
|
if (self.delegate && [self.delegate respondsToSelector:@selector(navigationController:prepareDisplayForViewController:)]) {
|
||||||
[self.delegate navigationController:navigationController
|
[self.delegate navigationController:navigationController
|
||||||
prepareDisplayForViewController:viewController];
|
prepareDisplayForViewController:viewController];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user