Tag: uiviewcontroller

仅在一个ViewController中旋转

我试图旋转一个视图,而所有其他视图(5)固定为肖像。 原因在于,在这种观点中,我希望用户观看他以前保存的照片。 我想这是可能的,但到目前为止我无法弄清楚如何实现这一目标。 任何人都可以帮助或给我一个提示? 我在iOS8上运行Swift编程

loadView:UIView iOS中的函数

我不明白loadView:函数的机制(这个函数在UIView中)。 我创build了一个项目如下: 首先,我创build了一个iPhone的基于窗口的项目。 然后,我创build了一个UIView子类 接下来,我创build了一个没有xib的UIViewController子类。 最后,在第三步创build的类的loadView:函数中,我将UIView对象(在第二步创build的类中)指定为UIViewController对象的视图variables(在第三步中)。 如果我省略了最后一步,并放置语句NSLog(@"test LoadView"); 在loadView:函数中,然后当项目运行时,语句NSLog(@"test LoadView"); 被连续调用,导致运行溢出。 请解释我! 谢谢!

视图控制器TDD

我正在尝试添加一些unit testing到我的项目来testing视图控制器。 但是,我似乎有看似简单的事情有问题。 我已经创build了一个我将参考的示例项目。 https://github.com/pangers/ViewControllerTesting 该示例包含一个UINavigationController作为初始视图控制器。 UINavigationController的根视图控制器是FirstViewController。 FirstViewController上有一个button,可以连接到SecondViewController。 在SecondViewController中有一个空的文本字段。 我试图添加的两个testing是: 1)检查FirstViewController中的button标题是“下一个屏幕”。 2)检查SecondViewController中的文本字段为空,“”。 我听说有关将swift文件添加到主目标和testing目标的报告不是很好的做法。 而是在你的公共testing中做任何你想要访问的东西,并把主要目标导入到testing中。 这就是我所做的。 (我也把主要目标的“定义模块”设置为YES,就像我在几篇文章中所读到的那样)。 在FirstViewControllerTests我已经实例化第一个视图控制器与以下内容: var viewController: FirstViewController! override func setUp() { let storyboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType)) let navigationController = storyboard.instantiateInitialViewController() as UINavigationController viewController = navigationController.topViewController as FirstViewController viewController.viewDidLoad() } 我已经添加了testing: func testCheckButtonHasTextNextScreen() { XCTAssertEqual(viewController.button.currentTitle!, "Next Screen", "Button should say […]

不好的访问代码2

过去3天我一直在为这个错误而苦苦挣扎,没有运气。 我正在开发与uiviewcontrollers和uitableviewcontrollers结合的应用程序,并在表视图中,我单击添加button,它崩溃。 (没有添加核心数据编码)。 我甚至还启用了NSzombies和Guard Malloc ,以下几点就是这些代码。 请帮助,因为我需要尝试追赶一个截止date,我不想在项目中的gremlin进一步发展。 0x0到 0x93e3bef3 testl 0x93e3570c movl 0x1f1b124 testl 0x1f18eb1 movl 0x8fecf203 addl 0x8feced68 movl 0x8fecc2c8 movb 0x8fecc25e movl 0x8fecc25e movl 0x8fecc25e movl 0x8fecc25e movl 0x8fecd268 movl 0x8fec1664 addl 0x8fec5f99 jmp 0x8febf2ef addl

如何做布局来处理IOS 8中的自定义呈现视图控制器的通话(双高度)状态栏?

在iOS 7中,我能够处理自定义呈现的视图控制器的布局,通过添加约束条件来处理调用状态栏,其中呈现的视图控制器具有与呈现视图控制器相同的中心和相同的宽度和高度。 这是因为宽度和高度使用自动resize,否则,当通话状态栏消失时,出现的视图控制器将由于某种原因从顶部向下按20个点。 然而,在iOS 8中,这个技巧不再适用。 首先,我通过实验发现,呈现视图控制器似乎不一定在容器视图中,所以我不能将这些约束添加到容器视图。 ( “A Look Inside Presentation Controllers”2014 WWDCvideo的示例代码并没有将呈现视图控制器放在那里)。看起来,让呈现的视图控制器使用自动布局或自动resize来填充容器视图是可行的,但是我发现当通话状态栏消失时,容器视图本身可能会被压低20点(这在iOS 7中并不是这样)。 我一直在玩“内置演示控制器”示例代码 ,但即使这样的代码也不能正确处理通话状态栏。 ( UIPresentationController ,我仍然试图去处理新的UIPresentationController API。)

如何从故事板以编程方式加载UIViewController?

我在我的Main.storyboard中用几个button和标签创build了一个UIViewController。 我试图切换到使用self.presentViewController该视图控制器,但它不会加载从故事板视图。 它只会默认加载一个空白的黑屏。 任何想法如何加载从故事板中创build的视图? self.presentViewController(ResultViewController(), animated: true, completion: nil)

自动布局和通话状态栏

我想问一下自动布局和通话状态栏。 这是一个简单的场景,演示了我的问题: 使用“使用故事板”启用项目创build 添加“视图控制器”并启用其“是初始视图控制器” 将控制器视图的背景颜色设置为红色 在控制器视图中添加“表格视图” 表视图应该有4个布局约束(领先,顶部,尾部,底部)的Superview常量设置为0。 现在,当我在模拟器中运行这个应用程序,并按⌘ + T我可以看到红色的背景,而通话状态栏animation英寸是否有可能摆脱这个毛刺?

查看轮播通知:为什么didRotateFromInterfaceOrientation:没有被调用?

我正在尝试检测任何设备方向更改,以便我可以更新视图。 我想更新视图方向是纵向还是横向,所以我实现了这个方法: – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations. return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); } 我知道,如果我想更新视图以正确显示当前的方向,我将需要实现以下一些方法: – willRotateToInterfaceOrientation:duration: – willAnimateRotationToInterfaceOrientation:duration: – didRotateFromInterfaceOrientation: – willAnimateFirstHalfOfRotationToInterfaceOrientation:duration: – didAnimateFirstHalfOfRotationToInterfaceOrientation: – willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration: 现在,问题是,我不明白为什么这些方法没有被激发,当我旋转模拟器。 我也试过这段代码: [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 但仍然没有。 所以我想知道,模拟器是否会启动轮转通知? 如果是的话,我在做什么错了?

将一个UIViewController更改为一个故事板内的UITableViewController?

我已经在我的故事板中做了一个视图,现在我已经决定我宁愿通过静态表格单元显示其数据。 我不能在UIViewController使用静态表视图( Static table views are only valid when embedded in UITableViewController instances )。 所以,我需要以某种方式将我现有的UIViewController转换为UITableViewController 。 我已经改变了.h文件的父项,但是还没有完成。 有没有另一种方法来实现这一目标? 我真的不必在故事板上创造一个新的风险投资,并将所有的东西都搬走,这是一个很大的麻烦。

我怎么能从一个子视图控制器访问父视图控制器的视图?

我有一个主视图控制器,负责我的2D opengl ES视图的绘图,以及一个子视图控制器buttonManager,它决定在启动时加载和绘制哪些button。 一旦用户按下其中一个button,这个视图控制器被创build,它的视图应该出现,但视图永远不会被添加,但已经被testing工作。 下面是我的代码从主视图控制器: buttonManager=[[ButtonManager alloc] init]; [self addChildViewController:buttonManager]; [self.view addSubview:buttonManager.view]; 并inheritance我的代码来启动这个观点: -(void)launchStopDialog: (NSString*)stopName { NSLog(@"stopdialog should be launched."); if (stopDialogController == nil) stopDialogController = [[StopDialogController alloc] initWithNibName:@"StopDialog" bundle:nil]; if (stopDialogController) [stopDialogController presentWithSuperview:self.view.superview withStopName:stopName]; }