Commit 51a12a36 authored by 汪洋's avatar 汪洋

添加NavigationCompletionBlock扩展

parent ccafc032
...@@ -23,11 +23,14 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -23,11 +23,14 @@ NS_ASSUME_NONNULL_BEGIN
- (nullable NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated - (nullable NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated
completion: (void (^ __nullable)(void))completion; completion: (void (^ __nullable)(void))completion;
- (void)pushAndKillToRoot:(UIViewController *)controller;
- (void)pushAndKillToRoot:(UIViewController *)controller NS_SWIFT_NAME(pushAndKillToRoot(_:));
/** /**
push动画完成后删除navigation中controller与controllerClass之间的controllers。 push动画完成后删除navigation中controller与controllerClass之间的controllers,
然后再从controllerClass往前删除count个,包含controllerClass
注意:controllerClass如果有多个只使用离controller最近那个 注意:controllerClass如果有多个只使用离controller最近那个
*/ */
- (void)push:(UIViewController *)controller andKillTo:(Class)controllerClass; - (void)push:(UIViewController *)controller andKillTo:(Class)controllerClass further:(NSInteger)count;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
...@@ -57,16 +57,15 @@ ...@@ -57,16 +57,15 @@
[CATransaction commit]; [CATransaction commit];
} }
/** - (void)push:(UIViewController *)controller andKillTo:(Class)controllerClass further:(NSInteger)count {
push动画完成后删除navigation中controller与controllerClass之间的controllers。
注意:controllerClass如果有多个只使用离controller最近那个
*/
- (void)push:(UIViewController *)controller andKillTo:(Class)controllerClass {
NSMutableArray *result = [self.navigationController.viewControllers mutableCopy]; NSMutableArray *result = [self.navigationController.viewControllers mutableCopy];
do { do {
[result removeLastObject]; [result removeLastObject];
} while (![result.lastObject isMemberOfClass:controllerClass]); } while (![result.lastObject isMemberOfClass:controllerClass] && result.count > 0);
if (count > 0 && result.count > count) {
[result removeObjectsInRange:NSMakeRange(result.count - count, count)];
}
[CATransaction setCompletionBlock:^{ [CATransaction setCompletionBlock:^{
[result addObject:controller]; [result addObject:controller];
...@@ -76,5 +75,4 @@ ...@@ -76,5 +75,4 @@
[self.navigationController pushViewController:controller animated:YES]; [self.navigationController pushViewController:controller animated:YES];
[CATransaction commit]; [CATransaction commit];
} }
@end @end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment