首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Swift中的另一个ViewController访问变量

从Swift中的另一个ViewController访问变量
EN

Stack Overflow用户
提问于 2014-06-06 09:23:22
回答 7查看 74.2K关注 0票数 26

我有以下ViewController

代码语言:javascript
复制
class PageContentViewController: UIViewController {

    var pageIndex: Int

}

如何从另一个ViewController访问pageIndex

我需要在这个函数中访问pageIndex

代码语言:javascript
复制
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?
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-06-06 09:40:19

默认情况下,swift中的所有内容都是公开的,因此,如果您声明如下内容:

代码语言:javascript
复制
class SomeViewController: UIViewController {
    var someVariable: SomeType = someValue

    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
    }
}

只要你有一个实例,你就可以访问它:

代码语言:javascript
复制
var myCustomViewController: SomeViewController = SomeViewController(nibName: nil, bundle: nil)
var getThatValue = myCustomViewController.someVariable
票数 22
EN

Stack Overflow用户

发布于 2017-04-06 13:11:51

ViewController1.swift

代码语言:javascript
复制
class ViewController1: UIViewController {

    struct GlobalVariable{
        static var myString = String()
    }
}

ViewController2.swift

代码语言:javascript
复制
class ViewController2: UIViewController 
{

print(ViewController1.GlobalVariable.myString)

}
票数 12
EN

Stack Overflow用户

发布于 2017-04-24 18:07:26

我就是这样解决的。。

代码语言:javascript
复制
class StaticLinker
{
     static var viewController : PageContentViewController? = nil
}

class PageContentViewController: UIViewController
{

    var pageIndex: Int
    StaticLinker.viewController = self
}

class AnotherClass
{
    StaticLinker.viewController.pageIndex = 100
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24072766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档