我提前道歉,基于范围可能是一个相当简单/快速的答案,但我到处都看,并且很惊讶没有得到答案.
我创建了一个名为Soldier的类,它有大约100个类变量.我需要一个用户输入信息,然后在几个不同的类窗体的过程中逐渐构建一个Solider对象(因为只有一个数据需要收集的数据太多).
我在Form1.cs中创建一个Soldier(tempSoldier)的(空)实例,并开始设置我从用户收集的对象的类变量.
private void button1_Click(object sender, EventArgs e)
{
Soldier tempSoldier = new Soldier();
tempSoldier.surname = textbox1.text;
}
Run Code Online (Sandbox Code Playgroud)
我的问题:如何从其他类(Form2.cs,Form3.cs ...)中的Form1.cs访问对象实例(tempSoldier)?
我应该提到所有表单(Form1.cs,Form2.cs ...)共享相同的名称空间.
提前致谢
编辑:以下所有解决方案都可以工作,这取决于您最喜欢哪一个.感谢您的反馈意见.一个小注意事项,请确保将所有类修饰符设置为Public包括您的自定义类(在我的例子中为Soldier.cs).
我知道这个问题已被多次询问,但所有答案似乎与我的应用程序中发生的情况略有不同.
我的理解是,一旦mapView将其委托设置为显示它的ViewController,就会调用viewForAnnotation函数.当mapView滚动时,会在地图中添加注释,以便在mapView区域内显示.
目前我有一个主viewController(mainVC),它包含一个MKMapView(mapView)这个viewController控制四个不同的地图在mapView中显示.
func moveViews(sender:Int) {
// This function handles which button on the Segmented Control was clicked and the loads the appropriate map into the mapView (passed as a para
removeAnnotationsAndOverlays() // ~~~
if sender == 0 {
// First Map was selected
let map1VC = map1VC()
map1VC.loadMap1View(mapView)
map1VC.centerMapOnLocation()
}
else if sender == 1 {
// Second Map was selected
let map2VC = map2VC()
map2VC.loadMap2View(mapView)
}
else if sender == 2 {
// Third Map was …Run Code Online (Sandbox Code Playgroud)