Tag: uiviewcontroller

如何检测视图控制器是否从导航控制器中popup?

我目前需要实现一些代码,当从我的导航控制器popup顶视图控制器。 有没有办法检测视图控制器何时从导航控制器堆栈popup? 尽可能多的我想远离使用viewWillDisappear或viewDidDisappear因为我在我的项目中使用了splitview视图,并且在主视图中select不同的行也会触发viewWillDisappear / viewDidDisappear方法。

closures导航控制器中的推送视图

我有一个导航控制器与视图控制器显示一个button。 该button通过push segue链接到另一个View Controller,后者会自动添加一个带有后退button的顶部导航栏。 这一切工作正常。 按下后退button滑出第二个视图并返回到第一个视图。 我在第二个视图控制器上有一个button,当按下时运行一些代码和委托调用回第一个视图控制器。 再次这工作正常。 现在我只需要closures第二个从代码推视图,就好像后退button被按下。 我已经尝试使用dismissModalViewCcontrollerAnimated和dismissViewControllerAnimated,但是他们都closures了整个导航控制器,删除视图2和1(返回bak到我的主菜单)。 什么是正确的方式滑出视图。

什么是showViewController的编程相反:发件人:

我正在写一个仅适用于iOS 8的应用程序,我正在使用“Show”和“Show Detail”segue以及showViewController:sender:和showDetailViewController:sender:方法组合的新自适应演示文稿。 我的问题是什么是调用showViewController:sender:后返回的程序化方式showViewController:sender: ? 视图控制器显示的方式取决于其父上下文。 例如,在一个UINavigationController showViewController:sender:将一个新的控制器推到导航栈上,但是如果在视图控制器图中没有UIKit容器,那么showViewController:sender:最终会做一个演示。 考虑到我可以写我自己的任意容器控制器,检查似乎是不可行的 if (self.navigationController) { [self.navigationController popViewControllerAnimated:YES]; } else if (self.presentingViewController){ … else if ([self.parentViewController isKindOfClass:[CrazyCustomContainer class]]){ [self.parentViewController someWackyUnwindMethod]; } … 等等…那么有没有一种通用的方式来反向显示? 如果不是我看到的唯一解决scheme是使用放松塞格斯的一切。 没有太多的麻烦,但我很好奇。

重新加载ViewController

我有一个视图控制器显示一些信息(不是表视图)。 我有一个更新调用到填充我的数据库的远程服务器。 更新调用完成后,我想完全重新加载我的ViewController。 我该怎么办?

在pushViewController之前设置视图控制器属性

在我的应用程序中,我添加了一个标签到一个视图,将它连接到一个sockets,但是当我第一次从另一个视图控制器分配这个sockets,然后调用pushViewController来显示它时什么也没有显示。 下面是推动显示标签的下一个视图之前的代码: CustomViewController *vc = [[CustomViewController alloc] init]; vc.lbl_price.text = self.label_price.text; // lbl_price is defined as a property in CustomViewController and label_price is defined in current view controller [self.navigationController pushViewController:vc]; 在CustomViewController viewDidLoad方法中,我添加了这个指令来看看它是否可以工作 NSLog(@"Price=%@",lbl_price); // it actually prints out what was previously assigned 但它没有显示在标签! 任何想法为什么? 斯特凡

在子控制器中查看控制器框架大小

我正在实施UIViewcontroller遏制。 在下面的例子中,我设置了根控制器中childcontrollers的框架大小。 子视图显示为我设置的大小,但是当我检查container1中的边界时,它将报告与我设置的大小不同的大小。 根控制器(容器) – (void)viewDidLoad { [super viewDidLoad]; self.containA = [[Container1 alloc]init]; self.containB = [[Container2 alloc]init]; self.containA.view.frame = CGRectMake(50, 50,50, 50); self.containB.view.frame = CGRectMake(50, 50, 300, 300); [self addChildViewController:self.containA]; [self addChildViewController:self.containB]; [self.view addSubview:self.containA.view]; Container1 -(void)viewDidLoad { [super viewDidLoad]; UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; //[self.view addSubview:view]; self.view = view; self.view.backgroundColor = [UIColor […]

在View Controller中启用/启用编辑模式

由于UI元素,我创build了一个TableView里面的视图控制器。 但是我无法启用编辑模式。 我尝试了几种不使用Solution的方法。 但是使用TableView控制器没有问题。 我试过的: override func viewDidLoad() { self.navigationItem.rightBarButtonItem = self.editButtonItem() } override func setEditing(editing: Bool, animated: Bool) { super.setEditing(editing, animated: animated) } func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if (editingStyle == UITableViewCellEditingStyle.Delete) { // Action to delete data } } 哪里可以解决问题?

如何取消一个UIWebView?

我模式展示一个UIWebView作为其视图的UIViewController 。 当用户点击取消button时,如何解除UIWebView ? 我有一个想法是有取消button链接到http://取消 ,然后登记 – (void)webViewDidStartLoad:(UIWebView *)webView 如果webView.request.URL.host isEqualToString:@"cancel" ,则closures视图控制器。 主机是否必须有一个点,例如“cancel.com”?

使用情节提要时重用UIViewController实例

我决定在我目前的iPhone应用程序中使用故事板。 我面临一些问题。 我真的需要重用我的UIViewController实例。 这是什么意思? 那么,例如,我有一个表视图控制器。 当我点击一个单元格时,另一个视图控制器将从故事板加载并推送到导航控制器堆栈中。 这一切都很好,但是每次加载这个视图控制器需要大约半秒到一秒的时间。 在我使用故事板之前,我只是通过caching创build的实例来解决这个问题,所以第二次点击一个单元时,视图控制器可以立即显示出来。 通过caching创build的实例,我的意思是这样的: if (!cachedInstance) { cachedInstance = [MyViewController new]; } [self.navigationController pushViewController:cachedInstance]; 有谁知道如何使用故事板完成这个? 提前致谢。

双重问号,它是如何工作的?

我正在学Swift,作为这个过程的一部分,试图弄清楚这里究竟发生了什么。 我有一个自定义的segue,我想放置我的模态视图控制器解散过渡。 曾经在objective-c中的是: UIViewController *sourceViewController = self.sourceViewController; [sourceViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil]; self是UIStoryboardSegue一个实例。 我在Swift中翻译了这个片段: self.sourceViewController.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) 从编译器得到这个错误: “的UIViewController? 没有名为“dismissViewControllerAnimated”的成员 现在, 通过文档 , presentingViewController方法如下所示: var presentingViewController: UIViewController? { get } 从我所了解的Swift语言文档中, ? 如果有的话,应该解开价值。 在这种情况下,视图控制器。 不明原因的事实是:如果我把一个双重的问号,它编译和工作: self.sourceViewController.presentingViewController??.dismissViewControllerAnimated(true, completion: nil) 有人能告诉我我失踪了吗? 那该怎么办?