Tag: segue

在prepareForSegue中设置UITextField文本属性

我在我的ViewController1中有一个textField。 我有一个push到我的ViewController2也有一个textField。 我需要将我的ViewController2中的textField.text设置为等于我的ViewController1中的textField中的文本。 这是我有的代码: – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqual:@"ViewController2"]) { ViewController2 *VCT = [segue destinationViewController]; VCT.title = @"View Controller #2"; VCT.textField.text = self.textField.text; } } 标题制定者工作得很好。 为什么textField无法正常工作?

iOS 6 – 以编程方式触发Unwind Segue什么也不做

在我的应用程序启动时,它使用segue以编程方式显示LoginViewController。 视图控制器以模态方式呈现,设置为交叉溶解。 成功的身份validation后,我想通过以编程方式触发unwind segue来closureslogin视图。 所以我把这个添加到我的头文件中: – (IBAction)unwindSegue:(UIStoryboardSegue *)segue; 现在在IB我能够控制 – 从“文件的所有者”LoginViewController拖动到退出button,并selectunwindSegue: 这将创build一个手动的继续,它显示在正确的文件的所有者和退出button的连接检查器。 然后,我从IB中的场景中单击新创build的Unwind segue,然后为其命名。 如果我点击“去”button来取消放风行动,它会把我带到上面提到的声明。 到目前为止,我在GCD块中成功进行authentication后,触发了这个过程: …. dispatch_async(dispatch_get_main_queue(), ^ { [self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self]; [self.spinner removeFromSuperview]; self.spinner = nil; }); …..运行时没有任何反应。 微调确实被删除了,但是没有任何放松继续执行的迹象。 unwindSegue:实现的一个突破点unwindSegue:永远不会被击中。 没有错误抛出。 没有任何东西被写入控制台。 标识符是正确的,我三重检查(否则它将失败)。 我看了这里和这里的答案,但我似乎没有遗漏任何东西。 但是我注意到,Xcode认为unwindSegue: 没有联系: 我无法从unwindSegue:前的小空圈拖动,并将其链接到“退出”button。 任何帮助将不胜感激。

从XIB到故事板

我有一个应用程序,故事板和一个窗口在.xib。 从故事板到.xib,我以这种方式移动: ShowDreamNIBController *detailViewController = [[ShowDreamNIBController alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:detailViewController animated:nil]; 我怎样才能从.xib移回故事板? 还有一个问题。 从故事板转到.xib时,我可以发送一些信息吗? 就像我在prepareForSegue方法中所做的一样 UPD我得到了有关closures.xib的答案。 需要关于发送信息的答案。

有条件地触发多个视图控制器

经过几天有条件地解雇了一段时间之后,我得到了西蒙 在这里的回答。 请花点时间看看,或者你可能不明白我在下面谈论什么。 我没有复制粘贴他的答案,因为他已经在那里很好地解释了。 现在我面临一个新的问题。 如果我想从一个View Controller继续使用多个View Controller? 进一步解释:说我有一个2个button的MainViewController 。 点击每个button后,它应该继续到他们各自的视图控制器。 第一个button到FirstViewController ,第二个button到SecondViewController 。 当您从一个视图控制器切换到另一个视图控制器时,可以使用Simon答案中所述的方法。 由于在这种方法中,您将segue绑定到View Controller itsrlf而不是button,您只有一个segue和该特定View Controller的标识符。 所以我不能单独区分button水龙头。 有没有解决这个问题的解决方法? 谢谢。

UIViewController半屏“抽屉滑动”animation

我想有一个UIViewController出现在右边的“幻灯片”animation。 不像一个推塞格,不喜欢Facebook的应用程序。 我想要新的ViewController滑动当前的TOP(不推)它,但只覆盖屏幕的一部分,而其他部分显示第一个ViewController。 我所尝试过的:我所得到的最接近的是通过创build一个自定义的segue与以下内容: – (void)perform { __block UIViewController *src = (UIViewController *) self.sourceViewController; __block UIViewController *dst = (UIViewController *) self.destinationViewController; CATransition* transition = [CATransition animation]; transition.duration = .50; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type = kCATransitionMoveIn; transition.subtype = kCATransitionFromRight; [src.navigationController.view.layer addAnimation:transition forKey:@"SwitchToView1"]; [src.navigationController pushViewController:dst animated:NO]; } 这实现了我所要做的animation,但它覆盖了整个第一个ViewController。 我如何让它在某个时候停下来,而不是覆盖整个事物呢? 我正在使用故事板,这是我第一次尝试任何一种新的animation。

在WatchKit中的接口控制器之间传递数据

我如何使用Swift将存储在标签中的数据从接口控制器传递到WatchKit中的另一个接口控制器? 我似乎无法在任何地方find答案,希望有人在这里可以帮助我。 我已经包含了我的代码的一部分,处理计算我需要通过的值。 我基本上想显示用户计算的相同值,并在下一个名为ResultsController的接口控制器中详细说明。 任何帮助,不胜感激:D class InterfaceController: WKInterfaceController { var currentValue: String = "0" func setDisplayValue(value: Double) { var percent = value // check if value is an integer if value % 1 == 0 { // our value is an integer currentValue = "\(Int(value))"// new value % } else { // our value is […]

prepareForSegue和代表

我有两个赛段的应用程序。 在其中一个segues中,当前的视图控制器成为代表,而另一个则不成立。 – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"MoreOptions"]) { UINavigationController *navigationController = segue.destinationViewController; MoreOptionsViewController *controller = (MoreOptionsViewController *)navigationController.topViewController; controller.delegate = self; } else if ([segue.identifier isEqualToString:@"FullStoryView"]) { SingleStoryViewController *detailViewController = segue.destinationViewController; detailViewController.urlObject = sender; } } 所有这一切工作正常,但我想尝试和更好地理解代码。 我不明白的是,我必须通过从navigationController.topViewController抓取它而不是简单地从segue.destinationViewController像我在第二条件如果条件获取引用的MoreOptionsViewController。 是因为我设置当前的视图控制器(自我)作为委托? 再次,我不是在试图解决问题,只是为了更好地理解发生的事情。

Swift:创build一个调用另一个class1中的方法的button

我有2个类,第一类被命名为“商店”,在那里我创build一个button,调用一个名为“ExploreViewControllers”的第二个类中的“storeSelected”方法。 该方法应打印“完成”,并带我到另一个视图控制器。 没有segue“完成”被打印,但是当把segue代码的应用程序崩溃。 错误是由于未捕获exception“NSInvalidArgumentException”而终止应用程序,原因:“Receiver()没有标识符”ok“的继续。 // ExploreViewController类 let _sharedMonitor: ExploreViewController = { ExploreViewController() }() class ExploreViewController: UIViewController, UIScrollViewDelegate{ class func sharedMonitor() -> ExploreViewController { return _sharedMonitor } func storeSelected(sender: UIButton) { println("done") // it entered here and "done" is printed self.performSegueWithIdentifier("ok", sender: self) //here is the problem } } //另一个名为“Store”的类 //button is created let monitor = […]

从自定义单元格select模式视图控制器segue iOS7问题

最终编辑 经过进一步的调查,我认为最好是重新提出这个问题,提供更多有关这个问题的信息。 这个问题似乎只发生在iOS7上。 我已经在iOS6上testing过了,这个工作没有问题。 – 安装程序设置是你有一个UIViewController (例如第一个VC),它拥有一个tableView,是数据源/委托。 当tableView中的单元格被选中/点击时,你执行第二个视图控制器(现在可以是空的)。 问题 问题是赛格不会立即发生。 如预期的在一秒之内。 在segue中没有数据被传递,或者在第二个视图控制器中加载的任何东西,所以你期望它是即时的。 有时候,这可以正常工作,没有任何问题。 其他时候,你会点击单元格,什么都不会发生。 – 被关注的趋势我注意到,当“问题”发生时。 模拟器/设备将等待,直到下一分钟开始,然后强制通过模态视图控制器的负载。 或者当问题发生时,您可以再次点击/点击设备屏幕上的任何地方,以“强制”负载。 这个问题可以在一个新的项目中复制,只是基础知识。我已经上传了一个包含这个项目的示例项目zip 。 附加代码(如果需要) 我有一个自定义的单元格设置。 当选中单元格时,执行以下操作: -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"%s",__PRETTY_FUNCTION__); if (indexPath.section == 0) { [self performSegueWithIdentifier:@"selectGameTurnDiff" sender:self]; } } 然后我在prepareForSegue中有以下几点: -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog(@"%s",__PRETTY_FUNCTION__); [super prepareForSegue:segue sender:sender]; } logging 下面是一些示例日志来显示此:运行1 2013-10-09 23:54:09.855 App [14954:a0b] […]

如何在使用自适应search时获得对UIPopoverController的引用?

在我的iOS 7应用程序中,我通过checkFor在prepareForSegue检测到了一个segue是一个popover: if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]]) 但是现在我正在使用自适应赛格,在上面的检查中,现在作为Popover segue不再返回true。 这是因为segue不再是一个UIStoryboardPopoverSegue ,而是一个UIStoryboardPopoverPresentationSegue 。 但是,不能简单地添加Presentation单词,因为没有定义。 什么是适当的方式来检测什么时候赛格是一个适应性赛格popup ,而不是一个全屏模态表示? 而且, 你如何获得iOS 8的popover的参考 ? 以下是我为iOS 7做的事情,但是又因为它不是UIStoryboardPopoverSegue这会导致崩溃。 UIPopoverController *popover = ((UIStoryboardPopoverSegue *)segue).popoverController; popover.popoverContentSize = CGSizeMake(380, 1000);