`
jiapumin
  • 浏览: 344445 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在UINavigationController下的-(void)viewWillAppear:方法失效的解决办法

 
阅读更多
viewWillAppear 只在该视图控制器 视图直接添加到 window 上的时候才会调用。
比如
[window addSubview:rootViewController.view];
[rootViewController.view addSubview:navigationController.view];

navigationController并不是直接添加到window上去的。

可以通过以下方式解决:
可以用 UINavigationControllerDelegate的– navigationController:willShowViewController:animated:方法达到这个目的。

所以要做到这个,你必须做以下几步:
(1)
1. 设置代理类
2. 代理类实现UINavigationControllerDelegate Protocol
      nav.delegate = self;
3. 在代理类中添加– navigationController:willShowViewController:animated:方法
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [viewController viewWillAppear:animated];
}

或者
(2)
1,在导航控制器上层controller的viewWillAppear中显式调用viewWillAppear方法
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [selectedViewController viewWillAppear:animated];  //tabbarController直接用selectedViewController更方便
}

分享到:
评论

相关推荐

    uinavigationcontroller用法.rar

    - 可以在storyboard中直接添加uinavigationcontroller作为初始视图控制器,或者在代码中通过初始化方法`initWithRootViewController:`创建,指定根视图控制器。 3. **设置uinavigationcontroller的属性**: - `...

    视图控制器(动画版).zipIOS应用例子源码下载

    - 对于页面间的过渡动画,可以自定义`UIStoryboardSegue`或使用`UINavigationController`的`animationControllerForOperation:fromViewController:toViewController:`方法。 4. **学习资源**: - 本示例代码适合...

    UIViewController

    - `pushViewController:animated:`:在导航控制器(UINavigationController)中将一个新控制器推入栈中。 - `present(_:animated:completion:)`:模态展示一个新的控制器,常用于弹出对话框或表单。 - `dismiss...

    ios-dev-resources:IOS应用开发的知识和资源

    按钮 -- 滑块 -- 切换 -- 日期选择 -- 分页 -- 下拉刷新UISegmentedControl -- 类似PC端的tabbarUIStepper -- 增减器UITextField -- 文本输入框UIAccessibilityElement -- 让 APP 支持无障碍UINavigationController ...

    UINavigationController

    在iOS开发中,`UINavigationController` 是一个至关重要的组件,它是苹果提供的用于管理多个`UIViewController`的容器控件。`UINavigationController`通过堆栈的方式来管理这些控制器,允许用户通过“前进”和“后退...

    OC Extension Navi+TarBar(自定义导航栏).zip

    在iOS开发中,自定义导航栏(NaviBar)和标签栏(TarBar)是常见的UI组件,用于提供用户友好的界面和交互。OC Extension Navi+TarBar 是一个专门为Objective-C(OC)开发者设计的工具类,它封装了自定义导航栏和标签...

    项目中的问题

    在处理不同语言环境下的数据时,可能会遇到字符编码问题,例如UTF-8编码在传输过程中的特殊表示形式。 **解决建议:** - 对于UTF-8编码的特殊形式,可以使用以下方法进行转换: - 使用`...

    UINavigationController极简单的例子

    相关知识共享: leftBarButtonItem与backBarButtonItem的区别 - http://blog.csdn.net/moon_prince2013/article/details/49079251 ViewController中[self setTtile]与[self.navigationItem setTitle]的... ... ...

    IOS NavigationController详解

    在iOS应用开发中,`UINavigationController`是苹果提供的一个核心组件,它负责管理一系列的视图控制器(UIViewController),实现屏幕间的导航。`NavigationController`在iOS应用中扮演着至关重要的角色,尤其在构建...

    UINavigationController-SeraphExtension:UINavigationController的扩展,可以自定义pushpop动画

    UINavigationController-SeraphExtensionAn extension for UINavigationController, you can custom push/pop animation.轻耦合的UINavigationController扩展,可以自定义push/pop动画。How to useStep 1. add the ...

    iOS开发,UI学习阶段,基本课程大纲

    在iOS开发领域,UI设计是至关重要的一环,它关乎到应用程序的用户体验和视觉美观。针对初学者,以下是一个详尽的UI学习阶段的基本课程大纲,旨在帮助你系统性地掌握这一领域的关键知识点。 1. **iOS开发环境搭建** ...

    网易首页demo

    - 在iOS应用中,页面切换可能通过UINavigationController的pushViewController:animated:方法,或者使用UIStoryboardSegue在Storyboard中定义。 4. **侧边栏导航**: - 左右侧边栏通常用于提供全局导航,可以使用...

    IOS 开发总结

    在iOS开发总结中,作者分享了在开发过程中遇到的难点以及解决方案,并提供了给初学者的编程习惯建议。 1. Objective-C代码技巧 - 代码混编:介绍如何在Objective-C项目中混用C++代码或其他语言代码。 - 字符串...

    iOS中的控制详解案例

    - `autoresizingMask`和`NSLayoutConstraint`:定义视图在不同屏幕尺寸下的布局。 通过ViewControllerDemo项目,你可以实践以上概念,了解如何在实际代码中运用这些控制器特性。例如,创建自定义的导航控制器、...

    ios-模仿百度糯米的首页实现.zip

    - UINavigationController和TabBarController:首页可能嵌套在UINavigationController中,提供导航功能,而整个应用可能由一个TabBarController管理多个主要的Tab页面。 5. 动画效果: - CAAnimation或UIView动画...

    RN-Navigation:React本机实施情况

    "RN-Navigation:React本机实施情况"指的是在React Native项目中使用原生导航解决方案来提升用户体验和性能。React Native自身提供了一些导航库,如React Navigation,但这些库通常依赖于JavaScript实现,可能会导致...

    超级漂亮的滑动导航栏效果源码免费下载

    - 响应式设计:确保在不同设备和屏幕尺寸下,滑动导航栏都能正常工作。 - 数据绑定:如果导航栏内容动态更新,可能需要使用数据绑定框架,如Angular或Vue.js,来实时同步数据。 4. **源码分析**: 提供的源码...

    IOS应用源码——Notebook(记事本).zip

    - 界面导航:了解如何使用UINavigationController、UIStoryboardSegue等实现界面间的跳转。 总的来说,这份源码是iOS开发者提升技能和实践经验的宝贵资源,涵盖了iOS开发的多个重要方面。通过深入学习和实践,...

    Xamarin+Cross-platform+Applicat+-+Jonathan+Peppers

    - 设置Android模拟器:介绍了如何配置Android虚拟设备,以便在Xamarin环境下开发和测试Android应用。 - 加入iOS开发者计划:为了能够在真实设备上安装和测试iOS应用,开发者需要加入苹果的开发者计划,并支付相应的...

Global site tag (gtag.js) - Google Analytics