Tag: unwind segue

如何以编程方式放松到2个不同的VC

如果我们有一个你有三个ViewController的情况。 黄,绿,白一个。 你可以通过黄色和绿色的到达白色的。 请参阅图片以获取更多解释: 当我从黄色变为白色时,我准备继续并将NSUinteger的jimmy_hendrix值设置为0; 当我从绿色变为白色时,我准备继续并将NSUinteger的jimmy_hendrix值设置为1; 在白色的VC里面,我做了IBAction并连接了一个BACKbutton。 在那里,根据价值我想放松我最终在白色VC的赛格。 这是我使用的代码: – (IBAction)goBack:(UIButton *)sender { switch (_jimmy_hendrix) { case 0: [self performSegueWithIdentifier:@"fromYellowToWhite" sender:self]; break; case 1: [self performSegueWithIdentifier:@"fromGreenToWhite" sender:self]; break; } } 但是,我得到一个例外: 'Receiver (<WhiteVC: 0x15d8c850>) has no segue with identifier 'fromSuperTraenerToSuperTraenerQuestions 为了清楚起见,我从来没有按CTRL +从BACKbutton退出,然后selectunwind segue方法,因为有两个unwind我想执行,根据哪个VC和哪个segue我用。 这是什么解决scheme? 如何继续回到我第一次得到我的destionation的任何ViewvController? 重要:我知道我可以做出新的赛段,从白色到黄色和绿色,并给他们打电话。 但是我不想要这样做。我不想做新的事情,我想以编程的方式放松现有的事情。 编辑:我忘了提及,我确实在绿色和黄色VC做了放松的方法 -(IBAction)fromYellowToWhite:(UIStoryboardSegue *)segue { } -(IBAction)fromGreenToWhite:(UIStoryboardSegue *)segue { […]

放松Segue – 在哪里拖出口?

我正在试着了解这个放松的过程是如何工作的。 首先我创build了3个ViewControllers。 GlobalVC -LoginVC -RegisterVC 我将初始页面设置为GlobalVC(只有经过身份validation的用户才能看到)。 我设置了从: GlobalVC to LoginVC称为globalToLogin和LoginVC to RegisterVC称为loginToRegister 。 这是我的故事板: 对于registerToLogin方向,我使用了这个解决方法(在RegisterVC中),但看起来有点难看。 @IBAction func unwindToLogin(sender: AnyObject) { //Dismiss View dismissViewControllerAnimated(true, completion: nil) } 但是,现在我试图从LoginToGlobal直接 首先,我selectloginbutton,将其拖到LoginVC: @IBAction func loginButton(segue: UIStoryboardSegue) { performSegueWithIdentifier("unwindToGlobal", sender: self) } 在设置segue: UIStoryboardSegue ,现在可以右键单击Exit。 但是,我在这里感到困惑。 不pipe我试图把Exit拖到圆圈里面,它会给出一个错误: 由于未捕获exception'NSInvalidArgumentException',终止应用程序'>原因:'接收器(0x7fdd2068a480>)没有标识符'unwindToGlobal'的segue 我应该在哪里拖动圈子? (我不断看到Unwind segue to 'Exit' )

以编程方式执行展开

目前我有以下故事板: UITableViewController – > Segue – > UINavigationController – > Relationship – > UITableViewController 在最后一个UITableViewController中,我添加了一个后面的button,代码如下: navigationItem.setLeftBarButtonItem(UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "unwind"), animated: true) let attributes = [NSFontAttributeName: UIFont.fontAwesomeOfSize(30), NSForegroundColorAttributeName: Constants.InterfaceColors.firstHighlightColor] as Dictionary! let unwindNavigationItem = navigationItem.leftBarButtonItem! as UIBarButtonItem unwindNavigationItem.setTitleTextAttributes(attributes, forState: .Normal) unwindNavigationItem.title = String.fontAwesomeIconWithName(FontAwesome.AngleLeft) 据我读,我必须连接文件的所有者的故事板退出。 我发现,只有在你的控制器代码中有一个如下所示的动作时,才可能这样做。 @IBAction func unwindToWeekOverview(segue: UIStoryboardSegue) { NSLog("unwind to […]

带有滑出菜单的标签栏

RearViewController.m -(IBAction)unwindFromViewController:(UIStoryboardSegue *)segue { if ([segue.identifier isEqualToString:@"unwindToViewController"]) { ViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"]; [self presentViewController:detail animated:YES completion:nil]; } } 如果我从我的RearViewController点击回来, ViewController不会呈现,而只是窥视和熄灭(再次显示RearViewcontroller )。 镜像2

在Swift 3和iOS 10中,展开segue不起作用

我试图在iOS 10和Swift 3中testingunwind segue。 我做了这样一个简单的应用程序: 我在TableViewController类中添加了segue的代码,并连接“取消”button,并在表视图控制器场景上退出: @IBAction func unwindToRootViewController(segue: UIStoryboardSegue) { print("Unwind to Root View Controller") } 但我简单的赛格不起作用。 我究竟做错了什么?

自定义解除争议iOS 8和iOS 9

我的问题是,我如何获得以下自定义展开segue在iOS 9之前版本的设备以及运行iOS 9的设备上工作? 我有一个自定义Segue显示一个视图控制器,然后有一个相应的自定义解绕Segue。 此代码在iOS 8中运行良好,并通过创buildUIStoryboardSegue的子类和实现perform方法来实现。 然后我重写我的自定义导航控制器中的以下方法: – (UIStoryboardSegue *) segueForUnwindingToViewController: (UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier { UIStoryboardSegue *segue; if([fromViewController isKindOfClass:[MyViewController class]]){ segue = [[CustomSegue alloc] initWithIdentifier:identifier source:fromViewController destination:toViewController]; //Custom Unwind Segue } else{ UIStoryboardSegue *unwindSegue = [super segueForUnwindingToViewController:toViewController fromViewController:fromViewController identifier:identifier]; //Normal Unwind Segue segue = unwindSegue; } return segue; } 在iOS 9中,不推荐使用segueForUnwindingToViewController 。 […]

当不是模态时,放开segue并不会解除自适应popup窗口的显示

更新iOS 9testing版:苹果可能已经修复了iOS 9的这个问题。如果你在iOS 8的这个问题上工作(编辑),请确保它在iOS 9上也能正常工作。 在故事板中,我创build了一个popup式演示文稿segue,用于显示button中的导航和视图控制器,以及创build一个展开的细节。 如预期的那样,在纵向方向上,模式(全屏)演示被展开/消除。 在横向方向上,展开的顺序也被调用,但是展开的展示不会被自动解除。 我错过了什么东西吗? 我必须自己解除stream行的演示文稿吗? – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)__unused sender { if ([[segue identifier] isEqualToString:@"showSelectBookChapter"]) { UINavigationController *navigationController = segue.destinationViewController; if ([navigationController.topViewController isKindOfClass:[BIBLESelectViewController class]]) { BIBLESelectViewController *selectViewController = (BIBLESelectViewController *)navigationController.topViewController; selectViewController.initialBookChapterVerse = self.bookChapterVerse; } } } – (IBAction)unwindToBIBLEChapterViewController:(UIStoryboardSegue *)segue { if ([segue.identifier isEqualToString:@"unwindToBIBLEChapterViewController"]) { if ([segue.sourceViewController isKindOfClass:[BIBLESelectViewController class]]) { BIBLESelectViewController […]

如何通过有条件的展开顺序传递数据?

我尝试build立一个rss阅读器。 在“添加Feed”页面上,如果点击“添加”button,我希望检查Feed是否已成功添加。 如果添加了,则触发展开顺序,返回主页面。 如果没有添加,请留在当前页面。 我知道我可以在“添加”button上创build一个IBAction,并检查是否添加了Feed。 不过,为了添加Feed,我需要满足两个要求。 首先,在parsingurl之后,我需要知道parsing结果是否可以生成一个feed。 为了parsingurl,我需要使用mainViewController中定义的方法。 其次,我需要检查Feed是否已经存在。 如果此Feed已经存在,请不要添加它。 要检查这一点,我需要从mainViewController获取饲料数据。 目前我使用prepareForSegue将数据从主viewController传递到这个视图。 但是,对于有条件的展开顺序,我不知道如何传递数据并检查feed是否已经存在。 因为prepareForSegue只有在segue被触发时才被使用。 如果没有触发,我不能检查条件。 除了通过segue,还有其他的方式来传递其他视图的数据吗? 我不知道Objective-C,所以如果你能快速给我一些解决scheme会更好。 🙂

iOS将数据从viewController2传递回给presentModalSegue的viewController 1

我有viewController1,使模式segue我的viewController2,但 viewController2embedded在导航控制器上 因为我需要那里的导航栏。 我已经实现了一个协议,从viewController2发回的数据viewController1,但它不起作用。 这是我的代码: protocol writeValueBackDelegate { func writeValueBack(value: String) } class viewController1: UITableViewController, writeValueBackDelegate { override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "SelectAddress"{ if let dest = segue.destinationViewController as? MapAddressViewController{ dest.delegate = self } } } } 在viewController2我有这个: class viewController2: UIViewController{ var delegate: writeValueBackDelegate? @IBAction func TaskOneClick(sender: AnyObject) { delegate?.writeValueBack(txtAddress!.text!) […]

为什么我的放松回落太远了?

我正在尝试为我的应用程序的注册过程创build控制器体系结构。 以下是目前状态的图片: 应用程序首次从login页面开始,如果用户点击“SignUp”,则通过self.presentViewController模态方式呈现导航控制器。 然后导航控制器通过一个视图控制器,然后推到第二个视图控制器。 在这个第二个视图控制器上,用户必须先按下“Go”才能以模态方式导航到请求附加信息的视图控制器,然后再继续注册过程。 一旦用户在这个模态呈现的控制器上input了额外的信息,用户按下“返回”通过展开顺序返回到第二个视图控制器。 但是,按下此button时,展开的segue将返回到第二个视图控制器,但会立即返回到“login”页面。 即使展开函数嵌套在第二个视图控制器中,看起来unwind segue也会popup所有模态呈现的视图。 发生什么事了,解开第二个注册页面的解决scheme是什么?