在这篇文章中,我们将为您详细介绍在Swift中从另一个ViewController访问变量的内容,并且讨论关于swift调用接口的相关问题。此外,我们还会涉及一些关于iOSSwiftwindow.ro
在这篇文章中,我们将为您详细介绍在Swift中从另一个ViewController访问变量的内容,并且讨论关于swift调用接口的相关问题。此外,我们还会涉及一些关于iOS Swift window.rootViewController vs presentViewController、ios – Swift:从另一个viewcontroller调用函数使对象为零、ios – 从Swift的另一个ViewController访问变量、ios – 从我在swift中使用modal打开的viewController访问navigationController的知识,以帮助您更全面地了解这个主题。
本文目录一览:- 在Swift中从另一个ViewController访问变量(swift调用接口)
- iOS Swift window.rootViewController vs presentViewController
- ios – Swift:从另一个viewcontroller调用函数使对象为零
- ios – 从Swift的另一个ViewController访问变量
- ios – 从我在swift中使用modal打开的viewController访问navigationController
在Swift中从另一个ViewController访问变量(swift调用接口)
我有以下内容ViewController
:
class PageContentViewController: UIViewController { var pageIndex: Int}
我如何pageIndex
从另一个ViewController 访问?
我需要访问pageIndex
此功能:
func pageViewController(pageViewController: UIPageViewController!, viewControllerBeforeViewController viewController: UIViewController!) -> UIViewController! { //var index: Int //index = ? NSUInteger index = ((PageContentViewController*) viewController).pageIndex; // in Swift? if ((index == 0) || (index == NSNotFound)) { return nil; } index--; return [self viewControllerAtIndex:index]; // in Swift?}
答案1
小编典典默认情况下,swift中的所有内容都是公开的,因此,如果您声明以下内容:
class SomeViewController: UIViewController { var someVariable: SomeType = someValue init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) }}
只要拥有它的实例,就可以访问它:
var myCustomViewController: SomeViewController = SomeViewController(nibName: nil, bundle: nil)var getThatValue = myCustomViewController.someVariable
iOS Swift window.rootViewController vs presentViewController
设置rootviewController:
let storyBoard : UIStoryboard = UIStoryboard(name: "Main",bundle: nil) var vc : UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as TargetViewController var window :UIWindow = UIApplication.sharedApplication().keyWindow! window.rootViewController = vc; window.makeKeyAndVisible()
更改模态视图:
let storyBoard : UIStoryboard = UIStoryboard(name: "Main",bundle: nil) let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as TargetViewController self.presentViewController(initViewController,animated: false,nil)
当我需要向用户呈现其他视图时,我很困惑.
附:就我而言,我的应用程序以登录表单作为rootViewController开始.登录后,我认为最好更改rootViewController,但我是对的吗?
解决方法
let storyBoard : UIStoryboard = UIStoryboard(name: "Main",bundle: nil) let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as TargetViewController self.window?.rootViewController? = initViewController
在这段代码中,我们只是从AppDelegate覆盖了rootview控制器.
ios – Swift:从另一个viewcontroller调用函数使对象为零
这是我的代码:
class FirstViewController: UIViewController { @IBOutlet imageView: UIImageView! func changeAlphaChannel() { imageView.alpha = 0.5 } } class SecondViewController: UIViewController { let firstController = FirstViewController() @IBAction func buttonpressed(sender: UIButton) { firstController.changeAlphaChannel() } }
在FirstViewController中调用changeAlphaChannel()可以正常工作,但是如果我按下按钮调用它,则imageView变为零并且应用程序崩溃.
我怎样才能解决这个问题?
谢谢
解决方法
let storyboard: UIStoryboard = UIStoryboard.init(name: "StoryboardName",bundle: nil) let firstViewController: FirstViewController = storyboard.instantiateViewControllerWithIdentifier("StoryboardIdentifier") as! FirstViewController
UPDATE
现在,只有在实例化firstViewController的视图时才会设置firstViewController的IBOutlets,在您的情况下不会发生这种情况.你要做的是首先显示firstViewController的视图,然后调用你的函数.
ios – 从Swift的另一个ViewController访问变量
class PageContentViewController: UIViewController { var pageIndex: Int }
如何从另一个ViewController访问pageIndex?
我需要在此功能中访问pageIndex:
func pageViewController(pageViewController: UIPageViewController!,viewControllerBeforeViewController viewController: UIViewController!) -> UIViewController! { //var index: Int //index = ? NSUInteger index = ((PageContentViewController*) viewController).pageIndex; // in Swift? if ((index == 0) || (index == NSNotFound)) { return nil; } index--; return [self viewControllerAtIndex:index]; // in Swift? }
解决方法
class SomeViewController: UIViewController { var someVariable: SomeType = someValue init(nibName nibNameOrNil: String?,bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil,bundle: nibBundleOrNil) } }
只要你有一个实例,你可以访问它:
var myCustomViewController: SomeViewController = SomeViewController(nibName: nil,bundle: nil) var getThatValue = myCustomViewController.someVariable
ios – 从我在swift中使用modal打开的viewController访问navigationController
我可以发送导航控制器中的最后一个元素作为模式的prepareForSegue中的self,但我问是否有另一种方式,抱歉我的问题总是很复杂
解决方法
我们今天的关于在Swift中从另一个ViewController访问变量和swift调用接口的分享就到这里,谢谢您的阅读,如果想了解更多关于iOS Swift window.rootViewController vs presentViewController、ios – Swift:从另一个viewcontroller调用函数使对象为零、ios – 从Swift的另一个ViewController访问变量、ios – 从我在swift中使用modal打开的viewController访问navigationController的相关信息,可以在本站进行搜索。
本文标签: