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
  • 相关阅读:
    Roce ofed 环境搭建与测试
    Ubuntu 1804 搭建NFS服务器
    Redhat 8.0.0 安装与网络配置
    Centos 8.1 安装与网络配置
    SUSE 15.1 系统安装
    VSpare ESXi 7.0 基本使用(模板、iso、SRIOV)
    VSpare ESXi 7.0 服务器安装
    open SUSE leap 15.1 安装图解
    KVM虚拟机网卡连接网桥
    GitHub Action一键部署配置,值得拥有
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/5178000.html
Copyright © 2011-2022 走看看