本文将介绍在没有Segues的情节提要之间传递变量-Swift的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于AngularJS:如何在控制器之间
本文将介绍在没有Segues的情节提要之间传递变量-Swift的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于AngularJS:如何在控制器之间传递变量?、AngularJS:我如何在控制器之间传递变量?、ios – Swift 2中没有关于segue的后退按钮、ios – 使用segue在View控制器之间传递变量的知识。
本文目录一览:- 在没有Segues的情节提要之间传递变量-Swift
- AngularJS:如何在控制器之间传递变量?
- AngularJS:我如何在控制器之间传递变量?
- ios – Swift 2中没有关于segue的后退按钮
- ios – 使用segue在View控制器之间传递变量
在没有Segues的情节提要之间传递变量-Swift
我在位于Xcode中两个不同.storyboard文件内的两个不同UIViewControllers之间传递数据。(这是一个很大的项目,因此我不得不将其分解为不同的故事板。)
我已经在要向其传递数据的视图中建立了一个“ exercisePassed”变量(字符串),而且我已经知道如何在位于不同情节提要中的两个视图之间移动。像这样
var storyboard = UIStoryboard(name: "IDEInterface", bundle: nil)var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! UIViewController//**************************************var ex = //Stuck Hereex.exercisedPassed = "Ex1"//**************************************self.presentViewController(controller, animated: true, completion: nil)
如何不使用Segue / PrepareForSegue传递数据?
答案1
小编典典我假设您要将数据传递到的viewController是自定义viewController。在这种情况下,请在此处使用以下修改的代码:
var storyboard = UIStoryboard(name: "IDEInterface", bundle: nil)var controller = storyboard.instantiateViewControllerWithIdentifier("IDENavController") as! MyCustomViewControllercontroller.exercisedPassed = "Ex1"self.presentViewController(controller, animated: true, completion: nil)
AngularJS:如何在控制器之间传递变量?
我有两个Angular控制器:
function Ctrl1($scope) {
$scope.prop1 = "First";
}
function Ctrl2($scope) {
$scope.prop2 = "Second";
$scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally
}
我无法使用Ctrl1
内部,Ctrl2
因为它是未定义的。但是,如果我尝试像这样传递它…
function Ctrl2($scope,Ctrl1) {
$scope.prop2 = "Second";
$scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally
}
我得到一个错误。有谁知道如何做到这一点?
在做
Ctrl2.prototype = new Ctrl1();
也失败。
注意: 这些控制器彼此之间不嵌套。
AngularJS:我如何在控制器之间传递变量?
function Ctrl1($scope) { $scope.prop1 = "First"; } function Ctrl2($scope) { $scope.prop2 = "Second"; $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally }
我不能在Ctrl2内使用Ctrl1,因为它是未定义的。但是,如果我试图通过它像这样…
function Ctrl2($scope,Ctrl1) { $scope.prop2 = "Second"; $scope.both = Ctrl1.prop1 + $scope.prop2; //This is what I would like to do ideally }
我得到一个错误。有谁知道如何做到这一点?
做
Ctrl2.prototype = new Ctrl1();
也失败。
注意:这些控制器没有嵌套在一起。
简单服务示例:
angular.module('myApp',[]) .service('sharedProperties',function () { var property = 'First'; return { getProperty: function () { return property; },setProperty: function(value) { property = value; } }; });
在控制器中使用服务:
function Ctrl2($scope,sharedProperties) { $scope.prop2 = "Second"; $scope.both = sharedProperties.getproperty() + $scope.prop2; }
这在this blog(第2课和特别是)中描述得很好。
我发现,如果你想绑定到这些属性跨多个控制器,如果你绑定到一个对象的属性,而不是一个原始类型(布尔,字符串,数字)来保留绑定引用的工作更好。
示例:var property = {Property1:’First’};而不是var property =’First’;.
更新:(希望)使事情更清楚here is a fiddle显示了一个例子:
>绑定到共享值的静态副本(在myController1中)
>绑定到一个基元(string)
>绑定到对象的属性(保存到作用域变量)
>绑定到共享的值,更新UI的值更新(在myController2中)
>绑定到返回基元(string)的函数>绑定到对象的属性>双向绑定到对象的属性
ios – Swift 2中没有关于segue的后退按钮
override func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. if segue.identifier == "showExercise" { if let nav = segue.destinationViewController as? UINavigationController { if let exercisesController = nav.topViewController as? ExercisesController { let cell = sender as! WorkoutCell if let workout = cell.name!.text { exercisesController.exercises = Workouts[workout]! exercisesController.navigationItem.title = workout } } } } }
之前,父segue的后退按钮用于自动填充.现在,我得到的只是儿童导航vc中的标题
解决方法
如果show segue的目标视图控制器实际上是UINavigationController,则新导航控制器的导航栏设置可能会覆盖旧的导航栏设置(源视图控制器的导航控制器).尽量不要将目标视图控制器嵌入另一个UINavigationController中.
ios – 使用segue在View控制器之间传递变量
我创建了一个名为“MainToTimer”的段落,一旦按下按钮,它就被触发.我想在第二个View Controller上使用名为“Duration”的变量.
可以传递多个变量和常量吗?
每个View Controller需要什么代码?
先谢谢你.
解决方法
class YourSecondViewController: UIViewController { var duration:Double? }
然后让你的按钮触发你的自定义segue.使用您的变量(‘duration’)作为发件人的参数.
class YourFirstViewController: UIViewController { @IBAction func buttonTapped(sender: AnyObject) { self.performSegueWithIdentifier("MainToTimer",sender: duration) } }
最后,通过覆盖prepareForSegue方法传递此发件人数据:
override func prepareForSegue(segue: UIStoryboardSegue!,sender: AnyObject!) { if (segue.identifier == "MainToTimer") { let secondViewController = segue.destinationViewController as YourSecondViewController let duration = sender as Double secondViewController.duration = duration } }
是的,也可以使用prepareForSegue的’sender’参数传递多个变量和常量.如果您有多个要传入的数据,请将它们放入数组中,并使该数组成为发送方.
关于在没有Segues的情节提要之间传递变量-Swift的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AngularJS:如何在控制器之间传递变量?、AngularJS:我如何在控制器之间传递变量?、ios – Swift 2中没有关于segue的后退按钮、ios – 使用segue在View控制器之间传递变量等相关知识的信息别忘了在本站进行查找喔。
本文标签: