`

ios UIViewController层级关系

    博客分类:
  • ios
阅读更多
- (void)setSelectedIndex:(NSUInteger)selectedIndex {
    if ([self selectedViewController]) {
        [[self selectedViewController] willMoveToParentViewController:nil];
        [[[self selectedViewController] view] removeFromSuperview];
        [[self selectedViewController] removeFromParentViewController];
    }
    
    _selectedIndex = selectedIndex;
    [[self tabBar] setSelectedItem:[[self tabBar] items][selectedIndex]];
    
    [self setSelectedViewController:[[self viewControllers] objectAtIndex:selectedIndex]];
    [self addChildViewController:[self selectedViewController]];
    [[[self selectedViewController] view] setFrame:[[self contentView] bounds]];
    [[self contentView] addSubview:[[self selectedViewController] view]];
    [[self selectedViewController] didMoveToParentViewController:self];
}
//当一个视图控制器从视图控制器容器中被添加或者被删除之前,该方法被调用
UIViewController willMoveToParentViewController:
UIViewController removeFromParentViewController
UIViewController addChildViewController
UIViewController didMoveToParentViewController:
分享到:
评论

相关推荐

    ios UIView或者UIViewController缩放动画效果

    如果你希望在`UIViewController`层级上实现缩放效果,可以将`view`替换为`self.view`。此外,你还可以通过调整`delay`参数来控制动画开始的时间,通过`options`参数设置动画类型,如缓入缓出效果。 现在,我们转向...

    通过UIViewController来编写弹窗 iOS

    在iOS开发中,`UIViewController` 是一个非常核心的类,用于管理屏幕上的内容和交互。本文将深入探讨如何使用`UIViewController` 来实现弹窗功能,这是由作者HeathWang创建并开源的项目——HWPopController。这个库...

    ios应用源码之适用于ipad的多层级的侧边栏菜单 20181210

    3. 数据结构:为了支持多层级菜单,我们需要设计一个数据结构来存储菜单的层级关系。这通常可以是一个嵌套的数组或字典,每个元素代表一个菜单项,包含标题、图标、子菜单等属性。我们可以用递归的方式来遍历这个...

    UIViewController

    1. **导航控制器(UINavigationController)**:通过`UINavigationController`,可以实现类似iOS系统应用中的层级视图导航,通过`pushViewController:animated:`方法将新的`UIViewController`实例推入栈顶,展示新...

    UIViewController新使用方法源码

    `UIViewController`现在可以直接添加手势识别器,如`UITapGestureRecognizer`,并处理相应事件,无需直接操作视图层级。 9. **状态栏管理** 自iOS 5开始,`UIViewController`可以控制其视图下状态栏的显示,通过`...

    IOS应用源码——适用于iPad的多层级的侧边栏菜单.rar

    6. **Navigation Controller**:可能用于管理侧边栏菜单的层级关系,提供导航堆栈。 7. **Delegate** 和 **Data Source**:在UITableView或UICollectionView中,代理和数据源协议用于定义如何填充和响应用户与视图...

    IOS应用源码——适用于iPad的多层级的侧边栏菜单.zip

    本资源“IOS应用源码——适用于iPad的多层级的侧边栏菜单.zip”提供了一套完整的源代码,专为iPad设备设计,能够支持多层次的侧边栏菜单,帮助开发者更好地理解和实现这一功能。 首先,我们来探讨一下侧边栏菜单的...

    IOS应用源码之适用于iPad的多层级的侧边栏菜单 .rar

    这个"适用于iPad的多层级侧边栏菜单"源码,是iOS开发者实现类似功能的一个宝贵资源。下面我们将深入探讨这个主题,了解其背后的技术细节和实现方法。 首先,侧边栏菜单通常被称为抽屉式(Drawer)或滑动菜单,它的...

    IOS实现侧边栏

    在iOS应用开发中,侧边栏(Sidebar)通常被用作主内容区域的导航辅助,为用户提供一个可扩展的菜单,展示多个功能模块或者层级结构。这个Demo是针对iOS 7设计的,意味着它可能使用了当时最新的Apple UI设计指南和...

    IOS过渡动画

    3. **UIViewAnimationOptions**:对于更简单的视图层级间的动画,我们可以使用`UIView`类的`transitionWithView`、`animateWithDuration`等方法,配合`UIViewAnimationOptions`来创建过渡效果。这些选项包括了淡入...

    ios-仿qq侧滑菜单效果.zip

    3. **UIViewController containment**:苹果推荐使用 containment 特性来管理多个UIViewController的层级关系。通过将侧滑菜单控制器作为主要内容控制器的子控制器,可以方便地控制菜单的显示和隐藏。 4. **...

    ios应用源码之用于ipad的自定义侧边栏导航效果 2018128

    `UIViewController`是iOS应用中的基本视图控制器,它负责管理一个视图和相关的业务逻辑。为了实现自定义的侧边栏导航,我们需要创建两个`UIViewController`实例,一个作为主要内容视图控制器,另一个作为侧边栏视图...

    IOS6状态栏透明

    在iOS6中,苹果引入了`UIViewController`类的`setNeedsStatusBarAppearanceUpdate`方法和`preferredStatusBarStyle`属性,这两个API是实现状态栏透明的关键。`setNeedsStatusBarAppearanceUpdate`方法用于告诉系统...

    ios-IOS父子控制器滑动导航.zip

    在iOS应用开发中,导航(Navigation)是一种常见且重要的用户界面设计模式,它帮助用户在应用的不同层级间轻松切换。本资源"ios-IOS父子控制器滑动导航.zip"似乎聚焦于如何实现iOS应用中的父子控制器滑动导航效果,...

    ios开发-基于iOS+Swift开发的多Tab框架.zip

    在iOS应用中,多Tab框架通常由UITabBarController类管理,它是一个特殊的UIViewController子类,能够同时展示多个视图控制器,每个视图控制器对应一个Tab标签。用户可以通过底部的Tab栏在不同的功能之间切换。在...

    ios 仿微信程序源码

    在这个项目中,开发者使用了UITabBarController,通过添加多个UIViewController实例,实现类似微信底部的“微信”、“通讯录”、“发现”和“我”的功能区划分。 - **TableView**: UITableView是iOS中的列表视图,...

    基于ios的树形邀请控件

    在iOS开发中,创建一个基于树形结构的邀请控件是一项常见的需求,它通常用于组织层级关系的数据展示,比如组织架构、菜单系统或者文件目录。本文将深入探讨如何实现这样一个基于iOS的树形邀请控件,同时关注其设计...

    ios-仿摩拜侧滑抽屉.zip

    - 抽屉视图和主视图之间的层级关系需要正确设置,通常抽屉视图位于主视图之上。 - 使用Auto Layout或Size Classes设置约束,确保视图在不同屏幕尺寸和设备方向下能正确显示。 5. **互动性**: - 为了实现类似...

    IOS仿微信界面

    1. **UIKit框架**:iOS界面构建主要依赖于UIKit框架,它包含了一系列用于创建和管理用户界面的类,如UIViewController、UILabel、UIButton、UITableView等。在这里,开发者可能使用了这些UI元素来复刻微信的各个功能...

    ios-改变状态栏.zip

    总之,改变iOS应用的状态栏外观通常涉及修改`UIViewController`的属性或创建新的窗口层级。通过理解这些机制,开发者可以灵活地适应各种界面设计需求。不过,应始终注意保持用户体验的一致性和质量,避免对系统功能...

Global site tag (gtag.js) - Google Analytics