zoukankan      html  css  js  c++  java
  • ios学习:页面跳转(present)

    //
    //  TWFXSecondViewController.m
    //  DemoMultiView
    //
    //  Created by Lion User on 12-12-24.
    //  Copyright (c) 2012年 Lion User. All rights reserved.
    //
    
    #import "TWFXSecondViewController.h"
    #import "TWFXThirdViewController.h"
    
    @interface TWFXSecondViewController ()
    
    @end
    
    @implementation TWFXSecondViewController
    @synthesize thirdViewController;
    
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view from its nib.
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    
    
    /*
     多视图切换,如果是从A视图跳转到B视图,那么A表示当前视图,B表示将要跳转到视图
     多视图跳转可以理解为有两部分:从A跳到B, B 返回 A.注意,是返回,不是重新发起跳转
     这里是第二阶段:从B返回A
     
     self.presentingViewController 在跳转发生后有效,表示B试图的上一个视图,在这里为A视图
     self.presentedViewController 在跳转发生后有效,表示B视图的下一个视图,在这里为nil,以为并没有发生跳转
     self.parentViewController表示B的父试图,也为nil
     */
    -(IBAction)btnClicGoBack:(UIButton *)sender{
        
        
        void(^task)() = ^{
            
            NSLog(@"2self: %@",self);
            NSLog(@"2back ed%@",self.presentedViewController);
            NSLog(@"2back ing%@",self.presentingViewController);
            //  NSLog(@"back par%@",self.parentViewController);
            printf("
    
    ");
            
        };
        
       // task();
        
        //跳转完成后调用completion,此时,当前视图已被销毁,self.presentedViewController self.presentingViewController都为nil
        [self dismissViewControllerAnimated:YES completion:nil];
        
        task();//此时,当前视图还没被销毁,self.presentingViewController 表示上一个视图
    
    }
    
    - (IBAction)btnClickTraToFirst:(UIButton *)sender {
    }
    
    
    /*
     这里表示从B视图跳到C视图
     */
    - (IBAction)btnClickTra:(UIButton *)sender {
        
        if (self.thirdViewController == nil) {
            
            /*
             最常用的初始化方法
             nibName 表示xib文件的名字,不包括扩展名
             nibBundle 制定在那个文件束中搜索制定的nib文件,如在主目录下,则可以直接用nil
             */
            self.thirdViewController = [[[TWFXThirdViewController alloc] initWithNibName:@"TWFXThirdViewController" bundle:nil]autorelease] ;
            
        }
        
        //视图切换的动画效果
        self.thirdViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
        
        void(^task)() = ^{
            
            NSLog(@"2self: %@",self);
            NSLog(@"2go ed%@",self.presentedViewController);
            NSLog(@"2go ing%@",self.presentingViewController);
            //  NSLog(@"go par%@",self.parentViewController);
            printf("
    
    ");
        };
        // task = ^(){};
        
        // task();//跳转前没意义
        
        
        /*
         completion是一个回调,当 当前视图(这里是TWFXViewController) 的viewDidDisear调用后,该回调被调用
         self.presentingViewController(表示上一个视图)为A视图
         self.presentedViewController(表示下一个试图)为C视图
         */
        [self presentViewController:thirdViewController animated:YES completion:task];
        
    
    }
    
    
    @end
  • 相关阅读:
    怎样搭建PHP开发环境
    求教Sublime Text2 SublimeLinter插件安装问题
    借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码
    sublime 支持php语法错误提示的插件
    sublime text 2 配置php调试环境
    解决file_get_contents无法请求https连接的方法
    JavaSE(六)包装类、基本类型和字符串之间的转换、==和equals的区别
    JavaSE(五)JAVA对象向上转型和向下转型
    JavaSE(四)之接口、访问控制
    JavaSE(二)之继承、封装、多态
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/5178000.html
Copyright © 2011-2022 走看看