Tag: uiviewcontroller

ViewController在iOS8设备旋转后偏移

我在iOS8中运行遗留代码时遇到了一个奇怪的问题。 该代码最初是在iOS6之前编写的,故事板(使用笔尖),在iOS7上运行时没有问题。 然而,在iOS8上运行时,奇怪的行为开始发生。 该应用程序设置为只在横向(左或右)运行。 因此它应该支持从横向到横向的自动旋转。 第一个问题是,最初的视图控制器被加载成肖像,一面被切断。 AppDelegate中的以下代码解决了此问题: self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; [self.window setFrame:[[UIScreen mainScreen] bounds]]; 改变这些调用顺序允许视图控制器以正确的方向加载,并且不影响在iOS7中运行的应用程序。 但是,现在当设备旋转180度,我得到以下结果。 查看图片… 这是在初始负载的应用程序: 经过180度的旋转,我得到了这个抵消效应: 任何想法如何解决这个问题? 再说一次,iOS7或以前的版本都可以。 谢谢!

什么是最好的方式发送参数到UIViewController?

我问这个问题,因为它看起来viewDidLoad在初始化器的主块之前被调用,并且我在初始化器中初始化的类variables在viewDidLoad中调用nil。 为了您的参考,我以编程方式完成这个viewcontroller,我已经创build了一个自定义的初始化,所以我可以采取各种参数在我的viewcontroller中使用。 我的自定义初始化器当然调用UIViewControllers指定的初始化器。 基本上,我很好奇什么是正确的devise模式发送参数到UIViewController? 我读过关于这个的其他线程,并没有真正得到一个明确的答案。 我应该跳过初始化并手动(从课外)设置属性? 这似乎有点不爽,我真的想发送一些参数,并好奇别人如何去做这个?

如何在应用程序启动时从应用程序委托加载不同的视图控制器类(即从应用程序委托)

我正在开发一个屏幕,我想加载视图控制器基于condition.ie条件它应该从应用程序委托在应用程序启动时加载特定的视图控制器类。 if(condition success) { //Load viewcontroller1 } else { //Load viewcontroller2 } 我怎样才能做到这一点,请帮助我

我在哪里可以指定哪个UIView用于UIViewController的视图属性?

我想在运行时设置一个UIViewController的视图属性。 我有一个.xib文件和两个视图,我想我的UIViewController子类拥有.xib文件来决定在运行时使用哪个UIView。 我以为我可以在loadView中做到这一点,只是说 if(some condition) self.view = thisView; else self.view = thatView; 但是这并没有奏效。 我怎样才能做到这一点?

Swift获取结构工作在我的第一个视图控制器?

我正在进入使用结构,现在我被困在第一个VC,它工作,因为我期望在另一个VC。 这是我在我的第一个VC(我应该有一个单独的文件中的结构?) 我需要使用lVisitors = ListVisitors.sharedInstance在我的第一个VC(其他VC似乎工作)中填充tableview, struct ListVisitors{ static var sharedInstance = [Visitor]() static func register() { //NSUserDefaults.standardUserDefaults().registerDefaults( ["tasks" : [String]()]) } static func load() { //Task.tasks = NSUserDefaults.standardUserDefaults().objectForKey("tasks") as! [String] } static func save() { //NSUserDefaults.standardUserDefaults().setObject(Task.tasks, forKey:"tasks") } static func append(visitor : Visitor) { //Task.tasks.append(string) ListVisitors.sharedInstance.append(visitor) } } class ScannerViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, AVCaptureMetadataOutputObjectsDelegate { […]

从后台恢复呈现ModalViewController,避免下面的内容闪烁

在我的应用程序中,我将在启动时在根视图控制器之上呈现一个模式视图控制器,并在从后台恢复时显示加载/汇总屏幕。 几秒钟后,这被解散,以显示根视图控制器。 模式通过applicationWillEnterForeground程序委托上的applicationWillEnterForeground方法呈现。 这一切都工作正常,但从后台恢复时,再次呈现加载模式之前,看到较低的根视图控制器的闪光是相当普遍的。 我正在努力find一个明显的方式来做这个演示文稿,以确保它安全地出现,而没有看到底下的视图。 我错过了一些非常明显的东西吗?

在Swift中将对象连接到两个View控制器

在我的项目中,我有两个视图控制器,而且我无法将对象(如UIImageView)连接到视图控制器。 当我尝试创buildIBOutlet时,它告诉我“无法插入新的sockets集合:无法find名为UIViewController的类的任何信息”。 我相信这个问题是因为我最初的class级宣言如下: class UIViewController: UIViewController { 实际上视图控制器被命名为mainScene。 但是,当我改变了第一个UIViewController到我认为应该是(mainScene),它甚至没有显示我连接IBOutlet的选项… class mainScene: UIViewController { 所以,我有两个问题。 我是否需要为第二个UIViewController创build一个完整的单独的类并解决我的问题? 有没有更好的方法来链接对象的UIViewController或者我只是做一些可怕的错误(可能的情况)? 非常感谢

如何展示视图控制器并closures所有其他视图?

我有大约20个视图控制器,与Modal和Push segues链接在一起。 现在,在最后一个视图控制器,我想再次切换回第一个视图控制器,就好像用户已经重新启动应用程序。 不幸的是,当我这样做 [UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InitViewController"]]; [self presentViewController:viewController animated:YES completion:nil]; 所有以前的视图控制器都不会被卸载。 没有调用一个viewDidUnload方法。 如何才能做到这一点?

在Swift中从不同的类访问ViewController中的对象

我有一个名为myView的UIView和名为myView的UIImageView的myImageView 。 在下面的代码中,我有一个名为viewLine的类,它连接到名为myView的UIView。 我遇到的麻烦是当touchesEnded被调用时,我想更改ViewController中的myImageView的alpha。 当我尝试这个时,不会更改myImageView的alpha。 (或者,当我尝试通过将viewLine类移动到主ViewController来实现这一点,出现以下错误 – override func drawRect(rect: CGRect) – 方法不会覆盖任何超类的方法 self.setNeedsDisplay() – Valuetypes'ViewController'没有成员'setNeedsDisplay' 。) 问题: 1 – 如何修改名为viewLine的类中的代码以访问ViewController故事板上的其他UI对象或函数,如myImageView ? 即如何在touchesEnded被调用后,从名为viewLine的类中更改myImageView的alpha值? 2 – 我在ViewController中有一个滑块sliderLineSize ,在ViewController中有一个可变的lineSize 。 UISlider sliderLineSize更改lineSize 。 但是, lineSize用于viewLine类的drawRect部分。 如何传递或访问类中的ViewController中设置的variables? (3 – 如何将viewLine类并入主ViewController?) import UIKit class ViewController: UIViewController { @IBOutlet weak var myView: UIView! @IBOutlet weak var myImageView: UIImageView! var lineSize: […]

对话框不显示在IOScordova

我有一个cordova应用程序,我必须显示几个警报。 在另一个应用程序,在同一个设备,他们工作得很好,但我目前的应用程序中有一个问题 当对话框应该显示。 它什么都不做,但是如果我展开通知栏,对话框会神奇地出现。 我在两个应用程序中都使用cordova-plugin-dialogs 1.1.1。 我发现这个JIRA https://issues.apache.org/jira/browse/CB-9441 但我不想创build一个新的插件来解决这个问题。 有什么办法可以解决这个问题,或者哪个插件在UIVIewController之上? cordova版本5.3.3 cordova-plugin-dialogs 1.1.1 IOS版本9.1 谢谢