有没有办法从AppDelegate获取当前的视图控制器? 我知道有rootViewController,但这不是我正在寻找。
问题 考虑以下控制器层次结构: UINavigationController UIViewController UITableViewController UIViewController的存在影响布局。 没有它, UITableViewController将占用UINavigationController的整个界限: 但是,如果我在UINavigationController和UITableViewController之间添加了一个vanilla UIViewController ,那么在UIViewController的顶端和UITableViewController的顶端之间会出现一个20px的间隔: 即使我把代码缩减到最简单的事情,我仍然观察到这种行为。 考虑这个应用程序委托代码: public override bool FinishedLaunching(UIApplication app, NSDictionary options) { window = new UIWindow(UIScreen.MainScreen.Bounds); var tableView = new UITableViewController(); var intermediateView = new UIViewController(); var navigation = new UINavigationController(intermediateView); navigation.View.BackgroundColor = UIColor.Red; intermediateView.View.BackgroundColor = UIColor.Green; tableView.View.BackgroundColor = UIColor.Blue; intermediateView.AddChildViewController(tableView); intermediateView.View.AddSubview(tableView.View); tableView.DidMoveToParentViewController(intermediateView); window.RootViewController = navigation; […]
我打算在我的应用程序中实现多任务。 我可以看到许多方法在AppDelegate这样做applicationWillResignActive , applicationDidEnterBackground , applicationWillEnterForeground ,… 但是……我没有看到他们应该使用的方式,也不知道他们为什么不在ViewControllers中,也不是他们在这里。 我的意思是:当应用程序进入后台,我不知道我的用户是哪个视图。 回来,当应用程序进入前台,我怎么知道该怎么做,我可以打电话,更新视图例如? 我会理解,如果这些方法在每个视图控制器,但在这里,我没有看到他们可以用什么具体的方式… 你能帮我理解实现这些方法的方法吗?
什么时候应该使用init:什么时候应该使用initWithNibName:bundle:创build视图控制器时?
我没有使用从StoryBoards UIViewController,我想有一个自定义的init函数,我传入一个对象的NSManagedObjectID。 我只想调用super.init(),就像我在目标c中那样。 喜欢这个: init(objectId : NSManagedObjectID) { super.init() } 但是我不能编译。 我能不能再这样做了? 我得到的编译器错误消息:“必须调用超类uiviewcontroller的指定初始值设定项”
我试图使用故事板,让事情正常工作。 我已经添加了一个容器视图到我现有的一个视图。 当我尝试添加一个引用到我的视图控制器.h文件(Ctrl – 拖动),我得到一个IBOutlet UIView *containerView 。 我如何获得对容器视图的视图控制器的引用? 我需要容器视图控制器,所以我可以将它的委托设置到我的视图的控制器,以便他们可以相互“交谈”。 我有我的故事板设置为: 并在我的.h文件中引用它: 注意在.h这是一个UIView,而不是我的InstallViewController的视图。 如何添加对视图控制器的引用? 我需要能够设置其委托。
注意:这个问题已经过时了 – viewDidUnload已经被弃用了iOS 6。 什么时候UIViewController的viewDidUnload自动被调用? 是的,我知道,当视图卸载。 但是什么时候自动发生? 我怎样才能手动? 谢谢。
设备旋转时是否可以更改约束条件? 这可能如何实现? 一个简单的例子可能是两个图像,纵向堆叠,而在横向上并排。 如果这是不可能的,我怎么可以完成这个布局? 我在代码中构build我的视图和约束,而不是使用接口生成器。
如果我在UINavigationController上推视图控制器和/或呈现模态视图控制器,我怎样才能找出最顶层的UIViewController ? 或者在我的情况下,我想知道如果某个UITableViewController是最重要的或不是。 我试过使用: self.navigationController.topViewController == self …但这不起作用。 我猜这是失败的,因为我在它上面展示了模态视图控制器,并且topViewController只跟踪哪些视图被推送到UINavigationController (而不是模态显示的那些视图)。
我需要知道什么时候我的视图控制器即将从导航堆栈popup,所以我可以执行一个操作。 我不能使用-viewWillDisappear,因为当视图控制器被移出屏幕出于任何原因(比如新的视图控制器被推到顶部)时被调用。 我特别需要知道控制器什么时候会自动popup。 任何想法将是可怕的,在此先感谢。