pop指定的页面 swift_swift pop 会指定页面 - CSDN
  • 实际开发中,经常有一次pop多层页面的需求,每次判断是在太麻烦了,于是我为UINavigationController写了一个Extension。纯粹的干货,可以复制粘贴使用。 .h 文件 @interface UINavigationController (Extension) ...

    实际开发中,经常有一次pop多层页面的需求,每次判断是在太麻烦了,于是我为UINavigationController写了一个Extension。纯粹的干货,可以复制粘贴使用。

    .h 文件

    @interface UINavigationController (Extension)
    /**  pop到指定的控制器 指定目标控制器的类名即可*/
    - (void)popToViewControllerWithClassName:(NSString *)className animated:(BOOL)animated;
    
    /**  pop多次 指定pop几层即可 count:层数*/
    - (void)popViewControllerWithCount:(NSInteger)count animated:(BOOL)animated;
    @end
    
    
    

    .m 文件

    
    @implementation UINavigationController (Extension)
    
    - (void)popToViewControllerWithClassName:(NSString *)className animated:(BOOL)animated{
    
        for (UIViewController *VC in self.childViewControllers) {
            if ([VC isKindOfClass:NSClassFromString(className)]) {
                [self popToViewController:VC animated:animated];
                return;
            }
        }
        [self popToRootViewControllerAnimated:animated];
    }
    
    - (void)popViewControllerWithCount:(NSInteger)count animated:(BOOL)animated{
        count = MAX(count, 1);
        NSInteger totalCount  = self.childViewControllers.count;
        NSInteger index = MAX(totalCount-count-1, 0);
        UIViewController *VC = self.childViewControllers[index];
        [self popToViewController:VC animated:animated];
    }
    @end
    
    
    
    

    下篇将贴出dismiss到指定控制器或dismiss多层presentingViewController的方法

    展开全文
  • iOS 如何pop指定页面

    2016-04-05 11:35:46
    当我们做app的时候有时候会遇到这样的需求,根视图是A一个“个人信息” 页面,点击头像...修改后我们需要Pop到B视图,然而苹果给我们提供的有两种方法 1、推出到根视图控制器 - (nullable NSArray *)popToRootViewCo

    当我们做app的时候有时候会遇到这样的需求,根视图是A一个“个人信息” 页面,点击头像会push到“个人详细信息”的B页面,当我们点击某一个详细的信息进行修改时会push到“修改信息”的C页面(或者会有详细的地区选择的D、E、F等等)。修改后我们需要Pop到B视图,然而苹果给我们提供的有两种方法

    1、推出到根视图控制器

    - (nullable NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated;


    2、推出到指定的视图控制器

    - (nullable NSArray<__kindof UIViewController *> *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

    然而当我们直接用第二种方法时系统会“崩溃”,提示

    Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.'


    pop推出的视图控制器并不存在,那么我们该如何使用呢?

    for (UIViewController *controller in self.navigationController.viewControllers) {
                if ([controller isKindOfClass:[ReviseUserInformationViewController class]]) {
                    ReviseUserInformationViewController *revise =(ReviseUserInformationViewController *)controller;
                    [self.navigationController popToViewController:revise animated:YES];
                }
            }

    压入栈了,那我们就可以在栈内查找

    展开全文
  • APP开发的过程中会遇到跳转问题,我们大部分是调回到上一个页面,可所有时候也会遇到跳转到指定页面的需求,苹果给我们提供了几种跳转方式 1.退出到跟视图控制器 popToRootViewControllerAnimated:(BOOL)animated; ...

    APP开发的过程中会遇到跳转问题,我们大部分是调回到上一个页面,可所有时候也会遇到跳转到指定页面的需求,苹果给我们提供了几种跳转方式

    1.退出到跟视图控制器

    popToRootViewControllerAnimated:(BOOL)animated;


    2.返回到上个页面

    popViewControllerAnimated:(BOOL)animated;


    3.返回到指定位置

    popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

    但是当我们直接用这个方法的时候会导致程序崩溃,提示

    Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.
    推出的视图控制器不存在,那我们应该怎么做呢,问题是压入栈了,我们可以去栈内找

    for (UIViewController *controller in self.navigationController.viewControllers) {
            if ([controller isKindOfClass:[TXHMessageController class]]) {
                TXHMessageController *messageVC =(TXHMessageController *)controller;
                [self.navigationController popToViewController:messageVC animated:YES];
            }else{
                [self popToPreviousView];
            }
        }
    


    展开全文
  • pop指定页面

    2015-11-04 15:10:17
    navigationController在pop时,指定pop到某个页面,这个页面要在navigationController栈里有的  for (UIViewController *temp in self.navigationController.viewControllers) {  if ([temp ...

    navigationController在pop时,指定pop到某个页面,这个页面要在navigationController栈里有的

        for (UIViewController *temp in self.navigationController.viewControllers) {

            if ([temp isKindOfClass:[需要退到哪个类类名 class]]) {

                [self.navigationController popToViewController:temp animated:YES];

            }

        }

    本文出自 “IOS开发” 博客,请务必保留此出处http://5828666.blog.51cto.com/5818666/1565114

    展开全文
  • swift push和pop

    2018-02-06 15:54:37
    push跳转到指定页面 self.navigationController?.pushViewController(FoundNewsViewController(), animated: true) pop返回上一个页面 self.navigationController?.popViewController(animated: true)

    push跳转到指定页面

    self.navigationController?.pushViewController(FoundNewsViewController(), animated: true)

    pop返回上一个页面

    self.navigationController?.popViewController(animated: true)


    展开全文
  • 第一个,返回指定页面 [self.navigationControllerpopToViewController:[[AuthenticationCodeVCalloc]init]animated:YES]; 还有一种,  UINavigationController *navVC =self....
  • iOS 导航pop指定页面

    2016-09-13 01:13:22
    一般导航条pus的时候是将新的页面压在老的页面上面,老的页面是被存储起来的所以,返回的时候就要把压在存储里面的viewController给释放出来,而不是继续push 所以要用到pop,下面简单的介绍pop指定页面 ...
  • ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,可能会从主页面跳转到了一级页面,又从一级页面跳转到了二级页面,然后从二级页面跳转到了三级页面,依次类...
  • 关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一级页面跳转到了二级页面,然后从二级页面跳转到了三级页面,...
  • 需要返回到指定页面初始化: BUYMyGoodsControl *buyVC=[[BUYMyGoodsControl alloc] init];   for (BUYMyGoodsControl * controller in self.navigationController.viewControllers) {
  • 首先要在appDelegate里添加导航视图控制器navigationColler func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?...
  • pop指定的控制器;pop到上层控制器;返回上上一级控制器
  • 返回根页面vc用 : [self.navigationController popToRootViewController] 返回指定的某个vc用下面(通过index定位)  [self.navigationController popToViewController:[self.navigationController.view...
  • 先不使用动画直接pop回根视图(或者是使用dismiss) [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:NO]; 然后切换指定的界面,...
  • 页面想要“跳来跳去”的需要借助“工具”才能实现,就好像我们要攀岩需要有绳子一样,当前的“绳子”就是我们出场率很高的导航控制器NavController,首先需要在在页面顶端引入   import{ NavController }from...
  • 项目中经常有这样的需求: A present弹出 B B present弹出 C C dismiss回到 A 对数模态弹出的控制器不像push的那样,有系统的导航栏统一管理。为实现这一目的,我仔细研究了官方文档,发现了这么一句话 ...
  • WWDC2015已经过去一段时间了,我发现自从更新了Swift2.0到现在的Swift2.2,我只是跟着版本更新了所有需要更新的语法,依旧自以为是很熟练的Swift程序员。刚入职比较闲碰巧看到了1月份的中国首届Swift大会上大牛们的...
  • Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。 2、举例说明Swift里面有哪些是 Objective-C中没有的? Swift...
1 2 3 4 5 ... 20
收藏数 760
精华内容 304
关键字:

pop指定的页面 swift