Questions tagged «uiviewcontroller»

UIViewController类管理iOS应用程序中的视图,并介导应用程序的视图,其基础模型对象和整个工作流之间的交互。


6
致命错误:对类使用未实现的初始化程序“ init(coder :)”
我决定继续与Swift一起完成剩余的项目。当我将自定义类(的子类UIViewcontroller)添加到情节提要视图控制器并加载项目时,该应用突然崩溃,并出现以下错误: 致命错误:对类使用未实现的初始化程序“ init(coder :)” 这是一个代码: import UIKit class TestViewController: UIViewController { init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) // Custom initialization } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any …

16
在UIViewController上显示clearColor UIViewController
我UIViewController在另一个UIViewController视图之上有一个视图作为子视图/模态,例如,子视图/模态应该是透明的,添加到子视图中的任何组件都应该是可见的。问题是我有子视图显示黑色背景,而不是clearColor。我试图将其UIView作为clearColor而不是黑色背景。有人知道这是怎么回事吗?任何建议表示赞赏。 FirstViewController.m UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]; [vc setModalPresentationStyle:UIModalPresentationFullScreen]; [self presentModalViewController:vc animated:NO]; SecondViewController.m - (void)viewDidLoad { [super viewDidLoad]; self.view.opaque = YES; self.view.backgroundColor = [UIColor clearColor]; } 解决:我已解决问题。它对于iPhone和iPad都运行良好。没有黑色背景的模态视图控制器只是clearColor / transparent。我唯一需要更改的是替换UIModalPresentationFullScreen为UIModalPresentationCurrentContext。多么简单! FirstViewController.m UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]; vc.view.backgroundColor = [UIColor …

6
在不使用导航控制器堆栈,子视图或模式控制器的情况下对视图控制器进行动画更改?
NavigationController具有ViewController堆栈来管理和有限的动画过渡。 将视图控制器作为子视图添加到现有视图控制器时,需要将事件传递给子视图控制器,这很麻烦,几乎没有烦恼,并且在实现时通常感觉很糟糕(Apple也建议不要这样做)。这样做)。 再次提供一个模态视图控制器,将一个视图控制器放在另一个之上,尽管它没有上述事件传递问题,但实际上并没有“交换”视图控制器,而是将其堆叠。 情节提要仅限于iOS 5,并且几乎是理想选择,但不能在所有项目中使用。 有人可以在没有上述限制的情况下以一种固体代码示例的方式更改视图控制器,并允许它们之间进行动画转换吗? 一个接近的示例,但没有动画: 如何在没有导航控制器的情况下使用多个iOS自定义视图控制器 编辑:导航控制器的使用很好,但是需要有动画过渡样式(不仅仅是滑动效果),显示的视图控制器需要完全交换(而不是堆叠)。如果第二个视图控制器必须从堆栈中删除另一个视图控制器,则它的封装程度不够。 编辑2:iOS 4应该是此问题的基本操作系统,我应该在提到情节提要(上)时澄清一下。


5
禁用iOS 13中呈现的视图控制器的交互式解雇
iOS 13为模态呈现的视图控制器引入了modalPresentationStyle .pageSheet(及其兄弟姐妹.formSheet)的新设计… …我们可以通过向下滑动显示的视图控制器来消除这些页面(交互式消除)。尽管新的“拉动关闭”功能非常有用,但可能并不总是令人满意。 问题:我们如何关闭交互式解雇? -请记住,我们保持演示文稿样式不变。

13
viewWillDisappear:确定是弹出视图控制器还是显示子视图控制器
我正在努力找到解决这个问题的好方法。在视图控制器的-viewWillDisappear:方法中,我需要找到一种方法来确定是由于视图控制器被推到导航控制器的堆栈上,还是由于视图控制器因弹出而消失了。 目前,我正在设置诸如的标志,isShowingChildViewController但是它变得相当复杂。我认为我可以检测到它的唯一方法是该-dealloc方法。

19
在AppDelegate.m中获取屏幕上当前显示的UIViewController
UIViewController屏幕上的当前电流需要通过设置一些徽标视图来响应来自APN的推送通知。但是我怎么能获得UIViewControllerin方法application:didReceiveRemoteNotification:of AppDelegate.m? 我尝试使用self.window.rootViewController获取当前的显示UIViewController,它可能是一个UINavigationViewController或其他某种类型的视图控制器。而且我发现的visibleViewController属性UINavigationViewController可用于UIViewController在屏幕上显示。但是如果不是,该UINavigationViewController怎么办? 任何帮助表示赞赏!相关代码如下。 AppDelegate.m ... - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //I would like to find out which view controller is on the screen here. UIViewController *vc = [(UINavigationViewController *)self.window.rootViewController visibleViewController]; [vc performSelector:@selector(handleThePushNotification:) withObject:userInfo]; } ... ViewControllerA.m - (void)handleThePushNotification:(NSDictionary *)userInfo{ //set some badge view here }

16
如何检查视图控制器是模态显示还是被推入导航堆栈?
在我的视图控制器代码中,我该如何区分: 模态呈现 推入导航堆栈 这两个presentingViewController和isMovingToParentViewController是YES在这两种情况下,所以都不是很有益的。 使事情变得复杂的是,我的父视图控制器有时是模态的,将要检查的视图控制器推到该模态上。 事实证明,我的问题是,我嵌入我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]; 我想我最好告诉我的视图控制器何时是模态的,而不是试图确定。

21
如何禁用UIPageViewController的滑动手势?
在我的情况下,parent UIViewControllercontains UIPageViewController包含UINavigationControllerwhich包含UIViewController。我需要向最后一个视图控制器添加一个滑动手势,但是对滑动的处理就好像它们属于页面视图控制器一样。我尝试以编程方式和通过xib进行此操作,但没有结果。 因此,据我了解,只有UIPageViewController处理好手势,我才能实现自己的目标。如何解决这个问题?

4
故事板-请参阅AppDelegate中的ViewController
请考虑以下情形:我有一个基于情节提要的应用程序。我将一个ViewController对象添加到情节提要中,将此ViewController的类文件添加到项目中,并在IB身份检查器中指定新类的名称。现在,我该如何从AppDelegate以编程方式引用此ViewController?我已经在相关类中创建了一个变量,并将其转换为IBOutlet属性,但是我看不到任何能够在代码中引用新ViewController的方法-按住ctrl拖动连接的任何尝试均无效。 即在AppDelegate中,我可以像这样进入基本的ViewController (MyViewController*) self.window.rootViewController 但是情节提要中包含的其他ViewController呢?

14
如何将单个故事板uiviewcontroller用于多个子类
假设我有一个情节提要,其中包含UINavigationController作为初始视图控制器。其根视图控制器是子类UITableViewController,这是BasicViewController。它具有IBAction连接到导航栏的右侧导航按钮的功能。 从那里开始,我想将情节提要用作其他视图的模板,而不必创建其他情节提要。说这些视图将具有完全相同的接口,但是具有类的根视图控制器,SpecificViewController1并且SpecificViewController2是的子类BasicViewController。 除IBAction方法外,这两个视图控制器将具有相同的功能和接口。 就像下面这样: @interface BasicViewController : UITableViewController @interface SpecificViewController1 : BasicViewController @interface SpecificViewController2 : BasicViewController 我可以那样做吗? 可我只是实例化的故事板BasicViewController,但有根视图控制器子类SpecificViewController1和SpecificViewController2? 谢谢。

13
消除呈现的视图控制器
我有一个理论上的问题。现在,©正在阅读Apple的ViewController指南。 他们写: 当需要解散呈现的视图控制器时,首选方法是让呈现的视图控制器将其解雇。换句话说,只要有可能,呈现视图控制器的同一视图控制器也应负责解散它。尽管有多种技术可以通知呈现视图控制器其呈现的视图控制器应被取消,但首选技术是委派。 但是我无法解释,为什么我必须在演示的VC中创建一个协议并添加委托变量,在演示的VC中创建委托方法以消除演示的VC,而不是在演示的视图控制器方法中进行简单的调用 [self dismissViewControllerAnimated:NO completion:nil]? 为什么首选更好?苹果为什么推荐它?

4
如何创建自定义iOS视图类并实例化它的多个副本(在IB中)?
我目前正在制作一个具有多个计时器的应用程序,这些计时器基本上都是相同的。 我想创建一个自定义类,该类使用计时器的所有代码以及布局/动画,因此我可以拥有5个相同的计时器,它们彼此独立运行。 我使用IB(xcode 4.2)创建了布局,计时器的所有代码当前都位于viewcontroller类中。 我很难集中精力如何将所有内容封装到自定义类中,然后将其添加到视图控制器中,我们将不胜感激。

18
popViewController的完成块
使用来关闭模态视图控制器时dismissViewController,可以选择提供完成块。是否有类似的等效项popViewController? 完成参数很方便。例如,我可以使用它来阻止从表视图中删除行,直到模式退出屏幕,让用户看到行动画。从推送视图控制器返回时,我希望有同样的机会。 我尝试放置popViewController在UIView动画块中,但我确实可以访问完成块。但是,这会对弹出的视图产生一些不必要的副作用。 如果没有这样的方法,有什么解决方法?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.