如何从另一个类访问分段控件的选定部分的标题?

问题描述:

在我的第一个视图控制器中,我有分段控件。我试图从我的第二个视图控制器中获取分段控件的选定部分的标题的字符串值。任何人有任何想法如何做到这一点?提前致谢!如何从另一个类访问分段控件的选定部分的标题?

+0

谁能告诉我为什么会出现向下票? – Skytect

您没有编写任何代码,但我认为这是一个提交和解雇视图控制器方案,而不是addchildviewcontrolleraddsubview。在这种情况下,有很多方法可以做到这一点,这里有两个:

1)制作一个全局变量来检测分段控制的状态。

@IBOutlet weak var segContoll: UISegmentedControl! 
func back() { 
globalvar = segContoll.titleForSegment(at: segContoll.selectedSegmentIndex) 
} 

2)制作的协议,这里是它应该是什么样子:

protocol NotifyDelegate { 
    func collectionViewSelectedIndex(indexPath : Int) 
} 

class CollectionViewForSessions: ... { 
    var delegate: NotifyDelegate? 
func ... { 
//The nextview delegate 
    sessionCollection.delegate = self 
} 
    func ... { 
//Instead of inputing a number, customize it to input a string segContoll.titleForSegment(at: segContoll.selectedSegmentIndex) 
     delegate?.collectionViewSelectedIndex(indexPath: indexPath.row) 
    } 
} 

class MessagesWithPerson: NotifyDelegate { 
    func collectionViewSelectedIndex(indexPath: Int) { 
    } 
} 
+0

我很确定你应该声明一个全局变量,只需在任何类,结构或协议之外声明一个变量,而不是使用'globalvar'。此外,当我在我的类之外声明全局变量时,它会给出错误消息“实例成员'nameOfSegControl'不能用于'viewControllerSegControlIsIn'类型。 – Skytect

+0

我的原始信息旨在被视为蓝图。显然,您需要在你的类的外部实现:'var yourString:String!'并将它分配给你的后端func,在这里你关闭视图:'segContoll.titleForSegment(at:segContoll.selectedSegmentIndex)' –