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("\n\n");

    };

   // 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("\n\n");
    };
    // task = ^(){};

    // task();//跳转前没意义

    /*
     completion是一个回调,当 当前视图(这里是TWFXViewController) 的viewDidDisear调用后,该回调被调用
     self.presentingViewController(表示上一个视图)为A视图
     self.presentedViewController(表示下一个试图)为C视图
     */
    [self presentViewController:thirdViewController animated:YES completion:task];

}

@end
时间: 2024-08-06 21:18:54

ios学习:页面跳转(present)的相关文章

JavaWeb学习——页面跳转方式

JavaWeb学习——页面跳转方式 摘要:本文主要学习了请求转发和响应重定向,以及两者之间的区别. 请求转发 相关方法 使用HttpServletRequest对象的 getRequestDispatcher(String path) 方法获取RequestDispatcher类型的转发器. 使用RequestDispatcher转发器的 forward(ServletRequest request, ServletResponse response) 方法进行转发. 实例 1 @Overrid

iOS 关于页面跳转和传值

iOS 页面间的跳转目前有3种方式: 1.利用StroyBorad 这里以TableView的静态cell为例,选中第一个cell按住ctrl往新的ViewController上拖,弹出对话框选择show或present modally 2.代码跳转 - (IBAction)Push:(id)sender { CATransition *animation = [CATransition animation]; [animation setDuration:0.3]; [animation se

IOS系统设置页面跳转

目录: 跳转 iOS10- 版本跳转url转 iOS10+ 版本跳转url转 跳转符 跳转到系统设置界面代码: // 自己应用的设置界面:url = UIApplicationOpenSettingsURLString func switchToSystemSettingsUrl(prefs : String) { let url = URL(string: prefs)! if #available(iOS 10.0, *) { if UIApplication.shared.canOpenU

ios ViewController 页面跳转

从一个Controller跳转到另一个Controller时,一般有以下2种: 1.利用UINavigationController,调用pushViewController,进行跳转:这种采用压栈和出栈的方式,进行Controller的管理.调用popViewControllerAnimated方法可以返回. PickImageViewController *ickImageViewController = [[PickImageViewController alloc] init];    

iOS——使用StroryBoard页面跳转及传值

之前在网上搜iOS的页面跳转大多都是按回以前的那种xib的形式,但鄙人是使用storyboard的.这篇就只介绍利用storyboard进行页面跳转与传值. 新建页面 iOS的程序也是使用了MVC的思想,页面文件与代码文件是分离的,这点与Android的类似.在使用storyboard的方式中,新建页面只需要在storyboard中拖入一个View Controller则可, 接下来就可以在新建的页面中添加各种控件来编辑这个新建的页面. 在新建的页面上编排各种视图控件如同在Android中编辑那

iOS使用StroryBoard页面跳转及传值

之前在网上iOS的页面跳转大多都是按回以前的那种xib的形式,但鄙人是使用storyboard的.这篇就只介绍利用storyboard进行页面跳转与传值. 新建页面 iOS的程序也是使用了MVC的思想,页面文件与代码文件是分离的,这点与Android的类似.在使用storyboard的方式中,新建页面只需要在storyboard中拖入一个View Controller则可, 接下来就可以在新建的页面中添加各种控件来编辑这个新建的页面. 在新建的页面上编排各种视图控件如同在Android中编辑那个

[爱上Swift]十三期:使用StroryBoard页面跳转及传值

之前在网上iOS的页面跳转大多都是按回以前的那种xib的形式,但鄙人是使用storyboard的.这篇就只介绍利用storyboard进行页面跳转与传值. 新建页面 iOS的程序也是使用了MVC的思想,页面文件与代码文件是分离的,这点与Android的类似.在使用storyboard的方式中,新建页面只需要在storyboard中拖入一个View Controller则可: 接下来就可以在新建的页面中添加各种控件来编辑这个新建的页面. 在新建的页面上编排各种视图控件如同在Android中编辑那个

ios学习-delegate、传值、跳转页面

ios学习-delegate.传值.跳转页面 1.打开xcode,然后选择ios--Application--Empty Application一个空项目. 项目目录: 2.输入项目名称以及选择保存路径即可. 3.创建文件夹Model.Controller. 4.Model文件夹创建User类:User.h User.m 代码: User.h: [html] view plaincopy #import <Foundation/Foundation.h> @interface User : N

2015 IOS 学习笔记 内存管理,页面跳转 ——蓝懿教育

——————————内存管理———————————————— 手动内存管理(MRC)中常用的三个方法 retain:导致内存计数+1 release:导致内存计数-1 copy:复制出来一个新的对象 和之前对象的数据可能一致 但是 不是同一个对象 此对象内存计数是1 autorelease:自动释放 当变量出了自动释放池之后会自动释放 自动释放池在项目中有很多看不见的 属性描述关键字: retain/strong: //如果是retain 会做两件事 //-(void)setNames:(NSM

iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2.为Button 添加点击事件,实现跳转 在RootViewController.xib中和RootViewController.h文件建立连接 在RootViewController.m中实现代码,alloc一个SecondViewController,用pushViewController到navigationCon