zoukankan      html  css  js  c++  java
  • 不同视图间的跳转方式

    从一个视图控制器切换到另一个视图控制器的几种方式

    1,模态(modal)画面的显示方法:
    例如iphone通讯录管理程序中,追加新的通讯纪录时,就是使用这种模态画面
    例:点击一个按钮,进入另一个界面

    - (void)goForward

    {

        ModalViewController * modalView = [[ModalViewControlleralloc]init];

        modalView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

        // [self presentModalViewController:modalView animated:YES];  ios 6 弃用了该方法

        [selfpresentViewController:modalView animated:YEScompletion:nil];

    }

    关闭模态画面的方法:

    - (void)goBack

    {

        [self dismissViewControllerAnimated:YES completion:^{

            //这里加个日志,点击按钮模态视图移除后会回到这里

            NSLog(@"back"); //ios 5.0以上可以用该方法

        }];

    }

    2,SwitchViewController中有2个控制器的属性:BviewController,CViewController
    点击按钮之后可以在B与C视图之间切换,也就是ios5开发那本书中的多视图应用程序的例子

    self.view insertSubview:(加载的新页面) atIndex:n;

    使用方法:

    对n的解释:页面都是层次叠加的,n表示加载到那一层上面

    这种画面跳转方法并非最佳的跳转方法:
    实际上并非真的实现了两个画面间的跳转,而是同时启动了2个画面,控制其中哪一个画面显示在前台,哪一个画面显示在后台而已。
    这种画面跳转方式有一个很大的缺点,即当画面数量增加时,画面跳转的实现代码将月来越复杂,而且各个画面间不可避免的有相互依赖关系。(多用于在一个页面中有时要显示或隐藏某个View会遮挡)
     
    3,UITabBarController实现并列画面跳转

        //将5个viewController实例放入TabBar的viewcontrollers属性中    

        self.tabBarController.viewControllers = @[navFrist, navSecond,navThird,navFourth,navFifth];   

        self.window.rootViewController = self.tabBarController;

        [self.window addSubview:self.tabBarController.view];//将根控制器的视图加到应用程序主窗口

     
    4,UINavigationController实现多层画面跳转,在导航控制器中,载入有层级关系的界面

    - (IBAction)addRightAction:(id)sender

    {

        XAddSymbolViewController *addSymbol=[[[XAddSymbolViewControlleralloc]initWithNibName:@"XAddSymbolViewController" bundle:nil] autorelease];

        [self.navigationController pushViewController:addSymbolanimated:YES];

    }

    返回原视图方法:

    [self.navigationController popViewControllerAnimated:YES];//弹出后返回到原视图

  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/ranger-jlu/p/3875691.html
Copyright © 2011-2022 走看看