首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从UInavigationcontroller呈现视图控制器后,ios 10加载视图和视图将不会被调用

在iOS 10及更高版本中,当使用UINavigationController呈现视图控制器时,加载视图和视图将不会被调用的问题可能是由于以下原因导致的:

  1. viewDidLoad方法不被调用:在iOS 10中,当使用UINavigationController呈现视图控制器时,如果视图控制器已经被加载过,那么其viewDidLoad方法将不会再次被调用。这是因为视图控制器的视图已经被缓存起来,当再次显示时,会直接使用缓存的视图。
  2. viewWillAppear方法不被调用:类似地,当使用UINavigationController呈现视图控制器时,如果视图控制器已经被加载过,那么其viewWillAppear方法也不会被调用。这是因为视图控制器的视图已经存在于视图层级中,只是被隐藏起来了。

解决这个问题的方法是,在需要加载视图和执行相关操作的地方,手动调用视图控制器的viewDidLoad和viewWillAppear方法。可以在视图控制器的viewDidAppear方法中进行调用,因为该方法在视图已经显示在屏幕上后被调用。

以下是一个示例代码:

代码语言:txt
复制
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    
    // 手动调用viewDidLoad和viewWillAppear方法
    self.viewDidLoad()
    self.viewWillAppear(animated)
    
    // 进行其他操作
    // ...
}

需要注意的是,手动调用这些方法可能会导致重复执行某些代码,因此需要根据实际情况进行适当的处理。

关于UINavigationController和视图控制器的更多信息,您可以参考腾讯云的相关文档和产品介绍:

请注意,以上提供的链接仅为示例,实际应根据您所使用的云计算平台和产品进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IOS开发基础系列】Navigation页面导航专题

/2093281 (Good)【IOS开发】UITabBarControllerUINavigationController结合使用。...导航条设置为半透明         将NavigationBar设置透明(仅将指定视图控制器进行透明处理),步骤如下:     1.在视图控制器的头文件中实现UINavigationControllerDelegate...willShowViewController: (UIViewController*) viewController animated: (BOOL)animated{     //如果进入的是当前视图控制器...设置为半透明        self.navigationController.navigationBar.translucent = YES;      } else {        //进入其他视图控制器...7 导航栏背景,标题返回按钮文字颜色 http://blog.csdn.net/mad1989/article/details/41516743 IOS自定义导航栏题目返回按钮标题 http://

31920

iOS14开发-UIViewController

有一些特殊的视图控制器(导航控制器、标签栏控制器)可以更加方便规范地管理 UIView。 创建 storyboard 初始化箭头指向的 UIViewController。...loadView 方法大概的实现思路如下: func loadView() { // 如果UIViewController是通过storyboard创建的,storyboard中加载视图来创建...return } // 如果UIViewController是通过xib创建的,xib中加载视图来创建view if xib创建 { // ......需要先监听,发送。 iOS 9 之后 NSNotificationCenter 无需手动移除观察者。 常见ViewController UIAlertController 警告(对话框)控制器。...返回按钮 如果当前 UIViewController 设置了leftBarButtonItem属性,则默认的返回按钮会被替代,自带的返回屏幕边缘滑动返回的效果失效,此时只能通过popViewController

2.3K20

iOS的MVC框架之控制层的构建(上)

viewWillAppear 视图将要呈现调用,只有当将一个视图添加到一个窗口UIWindow时视图才会呈现出来,因此这个方法是在将视图添加到窗口前被调用。...viewDidAppear 视图已经呈现到窗口中,这个方法会在视图添加到窗口调用。 viewWillDisappear 视图将要从窗口中删除时被调用。...虽然如此总是还能找到一些共同点方法论,一个优秀的设计方法,将不会出现所谓的控制器代码膨胀的问题。...同时控制器还要在适当的时候对用户的输入进行处理,以及在适当的时候调用业务模型所提供的服务,还要在适当的时候将业务模型提供服务的结果通知给视图进行呈现更新。...另外有可能我们的子控件会采用懒加载的模式来实现根视图中子视图的建立,因此如果你用strong的话就有可能导致子视图会被重新构建。 对于NSString类型的属性来说我们最好将他声明为copy。

1.5K20

Cocoa编程中视图控制器视图类详解

[[MyViewController alloc] init]];   [window addSubview:nav.view];   UINavigationController如何推入弹出视图控制器...(title)、用于显示标题的视图(titleView),以及用于当前视图向后导航的Back按钮(backBarButtonItem)隐藏后退按钮(hidesBackButton)。...• –viewDidLoad:当加载控制器视图到内存时,该方法被调用。...设计模式     传统的mvc设计模式 image.png 添加描述    iOS mvc设计模式 image.png 添加描述 主要区别在于viewmodel之间的数据交换都要通过控制器来协调...控制器加载视图过程 当调用视图控制器的view属性时,视图控制器会先调用loadView方法加载视图,因此,可以在loadView方法中创建所有的视图,这是比较好的编程惯例。

5K50

UINavigationController 导航控制器概念属性方法

,readonly,strong) UINavigationController *navigationController; ---- 方法 1、创建导航控制器的两种方法 (1)通过一个自定义的导航栏工具栏创建导航控制器...)animated; 3、管理视图控制器操作 (1)压入新的视图控制器 - (void)pushViewController:(UIViewController *)viewController animated...:(BOOL)animated; 这个方法是为了iOS方法的命名统一,在导航中,其作用push一样 - (void)showViewController:(UIViewController *)vc...animated; 5、是否隐藏底部工具条(默认隐藏) - (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated; 6、代理方法: (1)视图将要展示时调用的方法...UIViewController *)viewController animated:(BOOL)animated; (2)视图已经展示时调用的方法 - (void)navigationController

2.1K60

iOS开发UINavigation系列四——导航控制器UINavigationController

iOS开发UINavigation系列四——导航控制器UINavigationController 一、引言         在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem...UIToolBar,UINavigationController是将这些控件UIViewController紧密的结合了起来,使用导航,我们的应用程序层次会更加分明,对controller的管理也更加方便... toolbarClass:(nullable Class)toolbarClass; //使用系统默认的导航栏工具栏,通过一个根视图创建导航控制器 - (instancetype)initWithRootViewController...导航的新特性 //这个方法是为了iOS方法的命名统一,在导航中,其作用push一样 - (void)showViewController:(UIViewController *)vc sender:...五、UINavigationDelegate         导航控制器还提供了一些代理回调方法,如下: //视图将要展示时调用的方法 - (void)navigationController:(UINavigationController

1.8K20

ios入门之界面基础

视图控制器(View Controllers) 视图控制器是MVC(Modl-View-Controller)模式的逻辑部分。按照字面意思,这个控制器能够控制某个视图。...UINavigationController 我们在编写一个ios软件的时候,往往不只一个界面,界面之前跳转我们常常会用到navigation controller这么一个东西。...一个UINavigationController可以在数组中支持多个UIViewController,导航控制器(navigation controller)按照先进出的堆栈管理原则对我们创建的UIViewController...如: self.title =@"登录"; Table View Table views是用来显示滚动视图的控件,滚动视图iOS Apps中最常见的用户界面。...可以用点语法调用sectionrow属性: var currentRow = indexPath.row var currentSection = indexPath.section tableView

1.7K80

UINavigationController

UINavigationController 利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用 UINavigationController...按住Control键,直接控件拖线到目标控制器 如果点击某个控件,不需要做任何判断,一定要跳转到下一个界面,建议使用“自动型Segue” 手动型:需要通过写代码手动执行Segue,才能完成界面跳转...:@"login2contacts" sender:nil]; Segue必须由来源控制器来执行,也就是说,这个perform方法必须由来源控制器调用 如果点击某个控件,需要做一些判断,也就是说:满足一定条件才跳转到下一个界面...调用UINavigationController的push方法将destinationViewController压入栈中,完成跳转 如果segue的style是modal 调用sourceViewController...Modal的形式展示出来 Modal的默认效果:新控制器屏幕的最底部往上钻,直到盖住之前的控制器为止 //以Modal的形式展示控制器 - (void)presentViewController

1.3K60

iOS控制器UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单 当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view...为了便于管理控制器iOS提供了2个比较特殊的控制器: UINavigationController UITabBarController 2....都是通过"控制器"对象调用的 navigationBar 是通过"导航控制器"对象调用的 如果想改变导航条整体的样式 那么应该找 navigationbBar 如果想改变导航条上内容找 navigationItem...UITableBarController UITabBarControllerUINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换...:c1]; tb.viewControllers=@[c1,c2,c3,c4]; 注意:展示的顺序添加的顺序一致,导航控制器中不同,展现在眼前的是导航控制器的根视图控制器也就是第一个添加到导航控制器上的视图

1.2K40

iOS对UIViewController生命周期属性方法的解析

,再次创建这个类的对象,initalize方法将不会被调用,对于这个类的子类,如果实现了initialize方法,在这个子类第一次创建对象时会调用自己的initalize方法,之后不会调用,如果没有实现...3:loadView方法是开始加载视图的起始方法,除非手动调用,否则在ViewController的生命周期中没特殊情况只会被调用一次。...10:viewDidDisappear:视图已经消失时调用。 11:dealloc:controller被释放时调用。...注意:经过测试,nib文件加载的controller,只要不释放,在每次viewWillAppare时都会调用layoutSubviews方法,有时甚至会在viewDidAppare调用一次layoutSubviews...(6_0); 这个方法如果返回NO,自动跳转将不能进行,会被拒绝,需要注意的是,这个方法只会在自动的跳转时被调用,我们手动使用代码跳转StoryBoard中的连接关系时是不会被调用的,我们后面讨论。

2.9K20

Objective-C 的运行时中最具争议的黑魔法:Method Swizzling

例如:我们想要在一款 iOS app 中追踪每一个视图控制器被用户呈现了几次: 这可以通过在每个视图控制器的 viewDidAppear: 方法中添加追踪代码来实现,但这样会大量重复的样板代码。...继承是另一种可行的方式,但是这要求所有被继承的视图控制器如 UIViewController, UITableViewController, UINavigationController 都在 viewDidAppear...在视图控制器的生命周期,响应事件,绘制视图或者 Foundation 框架的网络栈等方法中插入代码都是 method swizzling 能够为开发带来很好作用的例子。...两个方法都是可选的,并且只有在方法被实现的情况下才会被调用。...Selector由编译器产生并且在当类被加载进内存时由运行时自动进行名字实现的映射。

40810
领券