>데이터 베이스 >MySQL 튜토리얼 >popViewController 之 同时pop掉2层viewController

popViewController 之 同时pop掉2层viewController

WBOY
WBOY원래의
2016-06-07 15:39:041208검색

项目中有注册和修改密码功能,一旦注册成功就需要跳转到成功的界面,然后成功界面会有相应返回按钮事件,这时候我就需要直接返回我的上上层视图了 开始我用的BLOCK,可是这种已经不能满足我的要求了, (下面功能虽然没有实现,但是可以理解block的简单使用了

项目中有注册和修改密码功能,一旦注册成功就需要跳转到成功的界面,然后成功界面会有相应返回按钮事件,这时候我就需要直接返回我的上上层视图了

开始我用的BLOCK,可是这种已经不能满足我的要求了,

(下面功能虽然没有实现,但是可以理解block的简单使用了)

要求:我有3个视图 


视图1为登录界面

视图2为注册界面

视图3为提示成功界面


视图2已经push到了视图1上,接下来就要在视图2里写block了,代码如下

ViewController2 . h

@property (nonatomic,copy) void (^callback)(void);//我的block对象


ViewController2 . m


              UIStoryboard *sb=[UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];

              ViewController3  *vc3=(ViewController3 *)[sb instantiateViewControllerWithIdentifier:@"viewcontroller3"];

              /*以上2行是我加载故事版中的视图3*/


              vc3.phoneNumber=self.phoneNum.text;//在故事版中如果2个视图之间相互传值,可以采用以上3行代码的形式来传递
                
                void (^myBlock)(void)=^{

                    [self.navigationController popViewControllerAnimated:YES];

                };
                
                [vc3 setCallback:myBlock];//将我的block赋给视图3
                [self.navigationController pushViewController:vc3  animated:YES];



以下代码为视图3里面的

ViewController3 . h

@property (nonatomic,copy) void (^callback)(void);


ViewController3 . m


            if (self.callback) {
                self.callback();
            }
            [self.navigationController popViewControllerAnimated:YES];




现在来看看我是如何实现的吧(简称面包屑用法)

【这种用法可以让你指定到你想返回的视图中去】根据上述功能,我将此段代码放在了视图3中

            NSArray *pushVCAry=[self.navigationController viewControllers];
          

//下面的pushVCAry.count-3 是让我回到视图1中去

            UIViewController *popVC=[pushVCAry objectAtIndex:pushVCAry.count-3];


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



希望对大家有所帮助,讲解的不是太好,大家可以在下方留言给我

popViewController 之  同时pop掉2层viewController

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.