Tag: uiviewcontroller

Modal UIViewController总是在iPad上全屏显示。 为什么?

我试图在iPad(UIModalPresentationFormSheet)或较大的(UIModalPresentationPageSheet)设置上创build一个简单的模式对话框,但是无论我做什么,它们都会全屏显示(带有标题栏)。 模式UIViewController是在界面生成器中创build的,我似乎无法为其指定大小。 为UIViewController中包含的UIView指定较小的大小没有任何影响。 我究竟做错了什么? 什么可能会影响这个问题? 难道是我设置modalPresentationStyle的时机? 我已经尝试使用UINavigationController和没有,但获得相同的结果。

UIViewController是否可以呈现?

我有一个UIViewController(让我们称之为Fred),它可能被embedded到许多不同types的容器(UINavigationController,UITabBarController,或模态内)中。 弗雷德有一个button,当挖掘,需要让弗雷德全屏。 直观地说,这意味着我想将Fred作为全屏模式呈现,但是有两个问题: Fred在视图层次结构中处于活动状态(无法呈现活动的vc) 弗雷德需要出示自己? 我试图通过创build一个Fred可以像这样调用的fullscreenContainerViewController来解决这个问题: [fullscreenContainer presentViewControllerAsFullscreen:self] FullscreenContainerViewController的实现: @property (nonatomic) UIViewController* proxyViewController // Create a proxy VC to hold state of the original ViewController so that we can safely // Remove it from it's hierarchy and then restore it after fullscreen is dismissed. – (void)presentViewControllerAsFullscreen:(UIViewController*)originalController { UIViewController* originalParentViewController = originalController.parentViewController; UIView* originalSuperview = originalController.view.superview; […]

MFMessageComposeViewController显示空白/白色屏幕

if([MFMessageComposeViewController canSendText]) { MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; controller.body = @"This is a test!"; controller.recipients = [NSArray arrayWithObject:phones]; controller.messageComposeDelegate = self; [self presentViewController:controller animated:YES completion:nil]; } 此代码使整个屏幕变白/空白。 有什么build议么?

UIAccessibilityContainer在子视图控制器?

我有一个父UIViewController我添加四个子视图控制器。 我试图pipe理这些控制器的可访问性。 我有一个status枚举,跟踪哪些孩子在屏幕上可见,所以当这种情况发生变化时,我正在更新孩子的accessibilityElementsHidden ,并发送一个LayoutChanged通知。 我的问题涉及在父视图控制器和每个子视图控制器中实现UIAccessibilityContainer协议。 家长需要知道这些元素应该以什么顺序呈现等,每个孩子都有自己的元素,也需要特定的顺序。 看起来,在孩子们内部, UIAccessibilityContainer方法( accessibilityElementCount等)从来没有被调用,所以它看起来像忽略了它们,这使得我的元素不顺序和混乱。 这是应该如何? 我可能在这里做错了吗?

不能分配types的值(string!,Bool,!,NSError!) – >无效的值typesUIActivityViewControllerCompletionWithItemsHandler?

我在我的项目中有以下代码行… @IBAction func shareMeme(sender: UIBarButtonItem) { let newMeme = save() let memedImage = newMeme.memedImage let activityViewController = UIActivityViewController(activityItems: [memedImage], applicationActivities: nil) presentViewController(activityViewController, animated: true, completion: nil) activityViewController.completionWithItemsHandler = {(type: String!, completed: Bool, returnedItems: [AnyObject]!, error: NSError!) -> Void in dispatch_async(dispatch_get_main_queue()){ self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) } } } 我不断地收到一个编译器错误“无法指定types的值”(string!,Bool,[AnyObject]!,NSError!) – > Void'到types'UIActivityViewControllerCompletionWithItemsHandler?'的值'引用下面的代码行。 .. activityViewController.completionWithItemsHandler = {(type: String!, […]

dismissViewControllerAnimated:完成:在iOS 8上

在iOS <= 7中,直接调用dismissViewControllerAnimated:completion:会导致presentedViewController dismissViewControllerAnimated:completion: nil 。 在iOS 8中, presentedViewController的ViewController仍然指向呈现的视图控制器,直到完成块被执行。 [self dismissViewControllerAnimated:NO completion:^{ //self.presentedViewController is nil }]; //self.presentedViewController is nil on iOS 7, but not nil on iOS 8 因此,在iOS 8中,我们不能依赖于presentedViewController ViewController属性来找出哪个viewcontroller是当前顶级的可见视图控制器。 在iOS 8中,警报需要呈现给视图控制器(这引起了另一个问题 )。 他们不会显示我们试图呈现的视图控制器是否已经呈现视图控制器。 如果我刚刚解雇了我提交的UIAlertController并在当前顶部可见的UIAlertController (通过recursionsearch最后UIAlertController显示UIAlertController ,那么它当然不会显示,但会logging一条错误消息:“警告:尝试呈现其视图不在窗口层次结构中!“ 这是在iOS 8中的错误还是只是新的方式? 我怎样才能find我可以提出我的UIALertController的viewcontroller?

如何推动ViewController从左到右的幻灯片效果? animation名称需要

编辑: 下面gif的animation名称是什么(从右到左)? 下面GIF的补充animation(从左到右)是什么animation名称? 注:我不想推一个赛格。 我想用这个animation推一个视图。 编辑2: 当我谈论animation名称时,有些人会感到困惑。 不过这里是一个animation名称的例子(名字是: UIViewAnimationTransitionFlipFromRight ): [UIView beginAnimations: @"Showinfo"context: nil]; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:0.75]; [self.navigationController pushViewController: view animated:NO]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO]; [UIView commitAnimations]; 我正在使用push和pop来调用堆栈上的操作。 我相信导航控制器保持导航在一个堆栈样式结构。 我正在使用导航控制器,我喜欢使用导航栏项目返回(popup)到先前视图时得到的效果。 这是一个从右到左的效果,很好,顺利。 这是一个从右到左的例子: 我怎样才能从右到左的效果创造补充的一个? 换句话说,当我在视图层次下去时? 这是我现在如何推视图控制器: [self.navigationController pushViewController:view animated:YES];

如何selecttabBar项目,以模态方式显示viewController

我有一个UITabBarController和5 UITabBarItem的应用程序。 我想为第三个标签栏项目(摄像头控制器)模态地启动视图控制器。 我试过这个代码: override func viewDidLoad() { super.viewDidLoad() self.presentViewController(self, animated: true, completion: nil) } 但我的应用程序崩溃。 我该怎么办?

在执行SegueWithIdentifier上的调用顺序

当我打电话performSegueWithIdentifier:我重写prepareForSegue:之后为了设置我的目标视图控制器上的一些属性。 但是,我试图了解这里的操作顺序,以确保它是安全的。 我实例化目标视图控制器: MyViewController *myVC = (MyViewController*)segue.destinationViewController; 之后,我在其上设置了一些属性 – 即初始化另一个处理加载不同Web视图的对象的创build,然后在该对象上设置属性: [myVC setFormHandler: [[WebFormHandler alloc] initWithSelectedFormName:[self theFormName]]]; 在我目标控制器的viewDidLoad:中,然后查询这个对象的属性,并使用它来加载正确的Web视图。 现在,我首先发生了一些混淆 – 属性的设置,或者在目标控制器上的viewDidLoad: 可以肯定地说,视图控制器的属性将始终从prepareForSegue:设置prepareForSegue:在调用viewDidLoad:之前?

从不同的视图更改标签

这主要是一个代表团的问题,因为我还在学习,不明白。 我不知道如何去创build我需要的委托。 我知道类似的问题已经被问到,但解决scheme并没有帮助我。 如何将视图1上的标签的文本与视图2中的UITextField的内容切换? 谢谢!