Tag: 解雇

在iOS中离开视图之前要求用户确认

我需要在用户离开某个视图之前显示一个UIAlertView ,或者点击一个“后退”导航栏button,或者点击我拥有的标签栏中的一个标签项,以便要求他确认。 这将是一个双button提醒,一个“取消”一个留在视图中,一个“接受”一个离开。 我需要这样做,因为我必须让用户意识到如果离开,未保存的更改将会丢失。 我试图通过在viewWillDisappear:方法中创build并显示警报视图来执行此操作: – (void)viewWillDisappear:(BOOL)animated { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Exit", @"") message:NSLocalizedString(@"Are you sure you want to leave? Changes will be discarded", @"") delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", @"") otherButtonTitles:NSLocalizedString(@"Accept", @""), nil]; [alertView show]; [super viewWillDisappear:animated]; } 但是,无论如何,视图是popup窗口,警告视图显示之后,应用程序崩溃,因为它的委托是已经从导航堆栈已经popup的视图控制器…我没有find解决这个情况的方法,可以有人帮我吗? 谢谢!

用快捷键退出键盘

我是一名初学Swift的程序员。 我一直在做一个待办事项列表申请。 我想通过返回键closures键盘。 我已经尝试了'self.view.endEditing(true)'和'resignFirstResponder()'方法,但都没有工作。 这里是我的代码:(我正在使用一个选项卡应用程序) class SecondViewController: UIViewController, UITextFieldDelegate { @IBOutlet var text: UITextField! @IBAction func addItem(sender: AnyObject) { toDoList.append(text.text) text.text = "" self.view.endEditing(true) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that […]

如何解除UIActionSheets和UIPopoverControllers而不知道是谁出示的

在我的客户端应用程序中,我有一个空闲的超时控制机制,当用户在指定的时间间隔内没有对应用程序执行任何操作时,我会显示一条警告并将其返回到login屏幕。 这个控制发生在我的容器视图中,我启动了我所有的其他视图。 当空闲时间到了,我popup这个容器视图到它的调用者,即login屏幕。 问题是,如果用户确实显示一个动作表或一个popup窗口,然后在空闲时间到来之前什么都不做,当我把他扔到login屏幕时,动作表和popup窗口仍然保留在login屏幕上因为我不排除他们。 为了解决这个问题,我可以考虑把所有的动作表和popup窗口保留在我的视图控制器中,然后在其所有者的viewWillDisappear方法上解除它们。 但是我有这么多的视图控制器,所以我正在寻找其他方式,如果有的话。 所以,问题是我怎样才能使所有这些行动表和popup窗口远离我的login屏幕,而不知道谁是他们的来电者?

iOS SDK:button被点击时closures键盘?

当用户点击一个button时,我怎样才能closures键盘? 一个更好理解的简单例子:用户在某些文本框中编辑了一些文本,最后他没有点击键盘上的“完成”或其他东西,但是当键盘仍然显示时,他点击了“保存”button。 那么,我现在怎么解雇键盘呢? 谢谢。 问候,丹尼尔

IOS:closures两个viewController

我有三个viewController 第一,第二和第三 从二到开第三我用 Third *third = [[Third alloc]initWithNibName:@"Third" bundle:nil]; [self presentModalViewController:third animated:YES]; [third release]; 现在我想从第三个回到第一个; 那么我在viewDidAppear中设置第二个这样的代码: [self dismissModalViewControllerAnimated:NO]; 但1秒钟,我看到第二,我不想看…我该怎么办?

如何禁用键盘出现时击中文本字段,iOS?

我有一个文本字段,我需要当用户按下它来显示一个自定义select器。 select器显示正常,但问题是键盘出现在底部,我不想要的。 这是一个iPad项目,我试图从我的iphone转换。 在iPhone上,这个效果很好,键盘总是隐藏的。 我可以错过什么/忘记在这里做? 编辑 为了将来的参考,这里实际发生了什么,实际上这两次(iphone&ipad)的键盘没有隐藏。 我只是以为它隐藏在iphone中,因为我的select器从底部popup,隐藏了键盘,因为它在它的顶部。 但在ipad上,情况并非如此。 无论如何,我使用下面build议的委托方法修复它。 谨慎,我接受这个答案,因为这是一个具体回答我想要的。 其余的答案是正确的,我认为更好的其他实现。

同时closures多个视图控制器

我正在使用SpriteKit进行游戏。 我有3个viewControllers:select级别VC,游戏VC,赢得VC。 游戏结束后,我想显示赢得VC,然后如果我按胜利VC上的确定button,我想解雇WIN VC和游戏VC(popup两个视图控制器出栈)。 但我不知道该怎么做,因为如果我打电话 self.dismissViewControllerAnimated(true, completion: {}) win vc(堆栈顶部)被解雇了,所以我不知道在哪里再打电话来解雇游戏vc。 有什么办法可以解决这个问题,而不使用导航控制器? 这是第一个VC:(请注意以下以“//”开头的评论) class SelectLevelViewController: UIViewController { // I implemented a UIButton on its storyboard, and its segue shows GameViewController override func viewDidLoad() { super.viewDidLoad() } } 这是第二个VC: class GameViewController: UIViewController, UIPopoverPresentationControllerDelegate { var scene: GameScene! var stage: Stage! var startTime = NSTimeInterval() var timer = […]

单functionclosures所有打开的视图控制器

我有一个应用程序是一个单一的视图应用程序。 我有一个导航控制器连接到从根视图控制器的所有子控制器。 在每个儿童控制器中,我有一个注销button。 我想知道是否我可以调用一个函数来closures所有沿途打开的控制器,无论用户按下注销时哪个控制器当前处于打开状态? 我的基本开始: func tryLogout(){ self.dismissViewControllerAnimated(true, completion: nil) let navigationController = UINavigationController(rootViewController: UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoginViewController") ) self.presentViewController(navigationController, animated: true, completion: nil) } 我正在寻找执行此任务的最有效的内存方式。 我会把我的注销function放在一个单独的utils文件中,但是我不能使用self。 而且我仍然有知道哪些控制器dynamic解雇的问题。 build议将Pop 更新到根视图控制器。 所以我的尝试是这样的: func tryLogout(ViewController : UIViewController){ print("do something") dispatch_async(dispatch_get_main_queue(), { ViewController.navigationController?.popToRootViewControllerAnimated(true) return }) } 这是实现我所追求的最好方式吗?

iPad“closures键盘”button不会closures键盘

我在横向视图中有一个UITextField,当我按下UIKeyboard视图右下方的“解除键盘”button时,键盘不会消失。 有没有一种方法来编程监听这个键被按下? 还是有没有连接,我没有看到这将使这个键盘消失? 这是iOS 4和XCode 4.谢谢。

iOS解雇UIAlertView显示另一个

我有一个Utils类,当某些通知被触发时显示UIAlertView。 在显示新的UIAlertViews之前,有没有办法解开任何开放的UIAlertView? 目前我正在做这个,当应用程序进入后台使用 [self checkViews:application.windows]; 在applicationDidEnterBackground上 – (void)checkViews:(NSArray *)subviews { Class AVClass = [UIAlertView class]; Class ASClass = [UIActionSheet class]; for (UIView * subview in subviews){ if ([subview isKindOfClass:AVClass]){ [(UIAlertView *)subview dismissWithClickedButtonIndex:[(UIAlertView *)subview cancelButtonIndex] animated:NO]; } else if ([subview isKindOfClass:ASClass]){ [(UIActionSheet *)subview dismissWithClickedButtonIndex:[(UIActionSheet *)subview cancelButtonIndex] animated:NO]; } else { [self checkViews:subview.subviews]; } } } 这使得applicationDidEnterBackground变得简单,因为我可以使用application.windows […]