我如何在我的视图控制器代码中区分: 以模态方式呈现 推在导航堆栈上 在这两种情况下presentingViewController isMovingToParentViewController和isMovingToParentViewController都是YES ,所以不是很有帮助。 什么复杂的事情是,我的父视图控制器有时是模态的,要检查的视图控制器被推送。 事实certificate,我的问题是,我embedded我的HtmlViewController在一个UINavigationController然后提出。 这就是为什么我自己的尝试和下面的好答案不起作用。 HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary]; UINavigationController* modalViewController; modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:modalViewController animated:YES completion:nil]; 我想我最好告诉我的视图控制器,当它是模态,而不是试图确定。
我有几个特定大小的模式视图控制器。 我试图避免使用自定义视图(在当前视图上创build全屏黑色半透明叠加,在视图上添加模态视图,animation等)来呈现它,因为没有适合我的大小的modalPresentationStyle控制器。 现在我正在使用UIModalPresentationPageSheet,但我的视图的高度较小,并且有一个难看的空白区域 期望的演示 _______________ | _______ | | | | | | | MyVC | | | | | | | ——- | ————— 实际演示 _______________ | | | | | | MyVC | | | | | | | |——-| | | | blank | | ————— 如果我使用UIModalPresentationFormSheet容器宽度较小。 我试图弄清楚如何做,但我不知道是否有可能。 呈现比任何presentationStyles小的模态VC的问题的解决scheme是什么? 唯一的解决办法是安排一个“自定义模式视图控制器引擎”? Popovers不符合我的devise要求:(
我设置我的视图控制器标题像这样在视图中加载: self.title = @"my title"; 在此之前,我在视图控制器和导航控制器中embedded了故事板中的标题。我将它设置为:“标题”; 当我点击包含视图控制器的选项卡时,标签栏项目和uiviewcontroller标题变为:我的标题 我想为视图控制器来改变,但标签栏项留在标题:标题 我怎样才能做到这一点?
有许多方法可以重写,比如initWithNibname: , awakeFromNib , loadView , viewDidLoad , viewDidAppear: , layoutSubviews ,而我无法决定以何种顺序获取这些方法。 我只是重复其中的一个“的心”。 任何详细的解释?
您可以将子视图控制器与Storyboard中的自定义容器视图控制器关联吗? 我可以将子视图控制器链接到选项卡视图控制器,并且可以将一个视图控制器链接到导航控制器。 我必须做什么容器风险投资接受儿童风险投资?
我有一个UIViewController ,我从我的第一个视图控制器导航到第二个视图控制器,我想改变导航控制器上显示的button的名称回去…. SecondViewController *secondController = [[SecondViewController alloc] initWithNibName:nil bundle:NULL]; [self.navigationController pushViewController:secondController animated:YES]; 现在在第二个viewcontroller我想改变在navigationController中的button的名称。
我想检查一个对象的types。 我怎样才能做到这一点? 情况是我得到一个对象。 如果该对象是typesA,则执行一些操作。 如果是B型,那么做一些操作。 目前,对象的types是C,它是A和B的父类。 我有两个类AViewController和BViewController 。 我在UIViewController获得的对象。 现在如何检查对象是AViewController还是BViewController ?
在调查内存泄漏时,我发现了一个与调用setRootViewController:的技术有关的问题setRootViewController:在一个过渡animation块中: [UIView transitionWithView:self.window duration:0.5 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ self.window.rootViewController = newController; } completion:nil]; 如果旧视图控制器(被replace的视图控制器)当前正在呈现另一个视图控制器,则上述代码不会从视图层次结构中移除所呈现的视图。 就是这一系列的操作 X成为根视图控制器 X表示Y,所以Y的观点在屏幕上 使用transitionWithView:使Z成为新的根视图控制器 …对用户来说看起来没问题,但是Debug View Hierarchy工具将会在UITransitionView显示Y的视图仍然存在于Z的视图UITransitionView 。 也就是说,在上述三个步骤之后,视图层次是: 的UIWindow UITransitionView UIView(Y的观点) UIView(Z的观点) 我怀疑这是一个问题,因为在转换时,X的视图实际上并不是视图层次结构的一部分。 如果在transitionWithView:之前立即将dismissViewControllerAnimated:NO发送到X,则生成的视图层次结构为: 的UIWindow UIView(X的视图) UIView(Z的观点) 如果我将dismissViewControllerAnimated: (YES或NO)发送给X,则在completion:块中执行转换,然后视图层次结构正确。 不幸的是,这干扰了animation。 如果animation解雇,浪费时间; 如果没有animation,它看起来破碎。 我正在尝试一些其他的方法(例如,使一个新的容器视图控制器类作为我的根视图控制器),但没有发现任何工作。 我会随时更新这个问题。 最终目标是直接从呈现的视图转换到新的根视图控制器,并且不会留下任何杂乱的视图层次结构。
我正在使用Xcode 8.0 beta 4。 在以前的版本中,UIViewController有设置状态栏风格的方法 public func preferredStatusBarStyle() -> UIStatusBarStyle 但是,我发现它在Swift 3中变成了“只可变varaiable”。 public var preferredStatusBarStyle: UIStatusBarStyle { get } 如何提供在我的UIViewController中使用的样式?
我正在试图做一个机制来深入文件/文件夹列表。 这个想法是每次用户select文件夹时显示相同的文件列表视图控制器,并显示文件详细视图控制器,如果他/她select一个文件。 到目前为止,我已经创build了一个从文件列表视图控制器到文件详细视图控制器的segue,并且从文件列表表视图单元格到文件列表表视图控制器创build了一个segue: 这个问题是,只要用户点击单元格,segue就会被执行。 我想从表格视图单元格中删除segue,并从文件列表视图控制器自己。 这样,当用户敲击单元格时,我可以以编程方式触发正确的继续。 所以,我的问题是:是否有可能在Interface Builder中从视图控制器创build一个segue?