Tag: modalviewcontroller

ios5 – 与故事板模式视图控制器的大小

有没有什么办法来调整模态使用故事板segue提出的视图控制器? 如何从模态视图控制器以翻转过渡显示另一个视图控制器? 如果我将其定义为Style = Modal,Presentation = Default,Transition = Flip Horizo​​ntal,则看起来很奇怪(背景是白色的)。 谢谢!

如何在iOS 7自定义转换的顶部显示一个半模式视图控制器

我将如何去在主视图控制器的顶部呈现“半视图”控制器? 要求:提供第二个视图控制器,滑过主视图控制器的顶部。 – 第二个视图控制器应该只显示超过一半的主视图控制器 – 主视图控制器应该保持在第二个视图控制器后面(透明背景,而不是在下面显示黑色) – 第二个视图控制器应该animation与animation类似于模态垂直覆盖,或iOS 7自定义转换 – 当第二个视图控制器处于活动状态(即第二个视图控制器不覆盖整个主视图控制器)时,用户仍然可以与主视图控制器上的button进行交互。r – 第二个视图控制器具有自己的复杂逻辑(不能简单视图) – 故事板,Segges,仅限iOS 7 – 仅iPhone,而不是iPad。 我已经尝试使用模式视图控制器,但是这不允许与主视图控制器交互。 有人可以提供一个如何使用iOS7自定义转换或其他方法做到这一点的例子。

呈现视图控制器模式重置当前视图

题 我试图呈现视图控制器模式(一个UIImagePickerController是准确的),而animation演示之前的一些意见。 重要的是要注意animation和视图的呈现没有链接,animation和模式呈现图像select器的视图之间可能存在时间差。 尽pipe如此,当我呈现视图控制器时,似乎我所处的当前视图的所有子视图(我从父视图控制器的视图呈现的视图)正在重置为原始的“情节图板“位置,这会导致我在呈现图像select器重置之前在视图中完成的所有animation。 另一件值得注意的事情是,我使用AutoLayout来定位animation的视图。 我已经添加了一个示例animation来显示这个问题 – 注意在点击“Present Modal View Controller”button之后,“Animate”button如何回到原来的位置(我已经在呈现模态之前切换了“Slow Animations”视图控制器,所以你可以看到“animation”button回来)。 我还添加了animation中显示的示例应用程序的链接,以便更深入地检查问题, 请单击此处下载它。 回答 为了解决这个问题,我使用@ kokx的答案,并animation视图的自动布局约束,而不是他们的帧值。 为了做到这一点,我简单地为我想要修改的约束创build出口,并修改约束的constant属性。 要更改animation效果,只需调用原始[UIView animateWithDuration:options:animations:completion:]同时replaceanimation代码animations:一部分,调用[self.view layoutIfNeeded] 。

iOS的AutoLayout问题与ScrollView

你好,我有一个与UIScrollView和ModalViewController的自动布局问题。 这是我的编码步骤作为示例代码: 1)我有一个UIScrollView作为子subView的UIViewController UIViewController *viewController = [[UIViewController alloc] init]; UIScrollView *scrollView = [[UIScrollView alloc] init]; scrollView.translatesAutoresizingMaskIntoConstraints = NO; [viewController.view addSubview:scrollView]; UIView *superView = viewController.view; NSDictionary *viewsDict = NSDictionaryOfVariableBindings(superView,scrollView); [superView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView(==superView)]|" options:0 metrics:nil views:viewsDict]]; [superView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView(==superView)]|" options:0 metrics:nil views:viewsDict]]; 这工作 2)我添加2个子视图到scrollView UIView *view1 = [[UIView alloc] init]; view1.backgroundColor = [UIColor redColor]; view1.translatesAutoresizingMaskIntoConstraints = NO; […]

不希望模式视图在键盘显示上向上移动

我从这里有一个viewcontroller我得到一个popover。 从这个popover我提出一个视图作为模态的观点。 里面有一个textview。 编辑开始时,整个模式视图向上移动(通常人们希望)。 但我不想这样。 有什么办法,我可以阻止我的模式视图在键盘上显示和隐藏上下移动?

实例化模式视图控制器冻结应用程序 – 可能的问题与Xcode 7

我在iOS应用程序中以模态方式呈现视图控制器。 问题是没有崩溃,应用程序冻结一旦presentViewController:animated被调用。 统计数据显示CPU使用率为100%,即使手动closures应用程序,使用率也不会下降。 UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; CustomModalViewController *vvc = [sb instantiateViewControllerWithIdentifier:@"CustomModalViewController"]; if(!vvc){ NSLog(@"ERROR!!! vvc is null"); } NSLog(@"instantiate modal view controller"); vvc.providesPresentationContextTransitionStyle = YES; vvc.definesPresentationContext = YES; vvc.data = data; NSLog(@"before presenting modal view controller"); [vvc setModalPresentationStyle:UIModalPresentationOverCurrentContext]; [self presentViewController:vvc animated:YES completion:nil]; 我试图在自定义类的viewDidLoad中打印一些debugging语句,但是这些也没有被调用。 我不明白为什么视图控制器没有被显示。 任何帮助将不胜感激。 我想知道在什么情况下你的应用程序进入无限循环推视图控制器或是由于其他原因? 更新: 我更新到XCode 7后发生这个错误。不知道,但我想这可能是一个新的SDK – UIKit或LLVM编译器的问题。 我复制我的项目到Xcode 6.4的另一个mac和错误消失! […]

iOS5:在UIWebView模式UIViewController播放Youtubevideo的例外

更新: iOS 6 beta 1不再发生 我目前正在使用新的iOS 5 SDK调整现有的iOS 4应用程序。 在用于读取Youtubevideo的模式视图控制器中呈现UIWebView时,发现新的崩溃。 开始阅读video是好的,但是当我尝试全屏设置,我得到以下exception: Exception: UIViewControllerHierarchyInconsistency, child view controller:<UIViewController: 0x6aef180> should have parent view controller:<WebViewController: 0x6a706c0> but requested parent is:<MPInlineVideoViewController: 0x6ae5d40> 这里是我如何instanciate和我的主视图控制器中呈现我的模式视图控制器: – (IBAction)buttonReleased:(id)sender { WebViewController *webVC = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]]; webVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical; webVC.modalPresentationStyle = UIModalPresentationPageSheet; [self presentModalViewController:webVC animated:YES]; } 我使用UIModalPresentationPageSheet作为modalPresentationStyle,当我将此值设置为UIModalPresentationFullScreen时,错误不再发生。 在我的模式WebViewController,这里是我如何加载我的Youtubevideo: – (void)viewDidLoad { […]

为什么这个代码使用presentModalViewController? (不是pushViewController)

任何人都明白为什么在CoreDataBooks示例代码中: (a)控制器交换差异的方法 虽然点击一个项目,并进入详细视图使用什么似乎是标准的“ pushViewController ”UINavigationController概念,当你点击“添加”一个新的loggingbutton时,它启动新的视图,通过“ presentModalViewController “方法? 也就是说,在两种情况下,都不能使用pushViewController方法吗? 每种方法在使用方法上有没有什么优势? 我看不清楚。 我猜想苹果公司一定会为不同的场景select不同的方法。 例如: 他们会看到的任何用户差异(即UI差异或function差异)? 开发商的任何差异(或优点/缺点) 例如,如果您要考虑使用pushViewController方法而不是用于“添加”scheme的presentModalViewController方法… (二)数据共享方式差异 他们如何共享共同的数据对象的方法似乎是不同的 – 所以再次只是想知道为什么这些方法是不一样的? (即在这两种情况下,主控制器都暂时传递给另一个视图,并且它们之间有一些共享的数据 – 即子视图需要传递回父视图) 代码提取方便 这是“编辑”: – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Create and push a detail view controller. DetailViewController *detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; Book *selectedBook = (Book *)[[self fetchedResultsController] objectAtIndexPath:indexPath]; // Pass the selected […]

如何更改模式视图iOS 7中的UIStatusBarStyle导航栏?

iOS 7过渡指南给出了一个很好的提示,如何在UIViewControllerdynamic地改变UIStatusBarStyle – (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleDefault; } 连同[self setNeedsStatusBarAppearanceUpdate]; 这在单个视图应用程序中正常工作。 但是,我现在试图将模式视图中的UIStatusBarStyleLightContent更改为UIStatusBarStyleLightContent 。 有一个MainViewControllerinheritance了ModalViewController ,它本身embedded在NavigationController 。 ModalViewController已将其委托设置为MainViewController 。 我试图调用[self setNeedsStatusBarAppearanceUpdate]; 在ModalViewController与下面的方法一起在该类中无效: // In ModalViewController.m – (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } 我也尝试调用[self setNeedsStatusBarAppearanceUpdate]; 在MainViewController上prepareForSegue: sender:方法的条件在- (UIStatusBarStyle)preferredStatusBarStyle {}返回UIStatusBarStyleLightContent时,模态视图呈现 – 但也没有效果。 如何在模态视图中更改UIStatusBarStyle? 编辑:发布更新:我需要提到的是, ModalViewController是embeddedNavigationController NavigationBar 。 将NavigationBar设置为隐藏到[self setNeedsStatusBarAppearanceUpdate];上面调用[self setNeedsStatusBarAppearanceUpdate]; 在ModalViewController工作正常。 但是,当酒吧是可见的。

呈现一个透明的模态UIViewController

我试图自己做一个自定义alertView(对于iOS7 +),但我挣扎alertView演示。 我有一个UIViewController与黑色背景(alpha设置为0.25f),并将alertView作为子视图。 当我想显示alertView时,我以模态方式呈现viewController: -(void) show { UIWindow* window = [[UIApplication sharedApplication] keyWindow]; self.modalTransitionStyle = UIModalPresentationCustom; self.transitioningDelegate = self; [window.rootViewController presentViewController:self animated:YES completion:nil]; } 这是我的animation师对象: -(NSTimeInterval) transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext { NSLog(@"%s",__PRETTY_FUNCTION__); return 2; } -(void) animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { NSLog(@"%s",__PRETTY_FUNCTION__); UIView* toView = [transitionContext viewForKey:UITransitionContextToViewKey]; toView.alpha = 0; UIView* container = [transitionContext containerView]; [container addSubview:toView]; [UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{ […]