Iphone 使用分段控制

Iphone 使用分段控制,iphone,objective-c,xcode,cocoa-touch,Iphone,Objective C,Xcode,Cocoa Touch,好的,我有一个选项卡式视图,所以有两个视图控制器。在一个视图控制器中,我有一个分段控件,为了知道选择了哪个分段,我将一个动作连接到它。像这样: -(IBAction)selectAngle:(id)sender{ clickedSegment = [myAngleType selectedSegmentIndex]; } -(IBAction)selectAngle:(id)sender{ self.clickedSegment = [myAngleType selectedS

好的,我有一个选项卡式视图,所以有两个视图控制器。在一个视图控制器中,我有一个分段控件,为了知道选择了哪个分段,我将一个动作连接到它。像这样:

-(IBAction)selectAngle:(id)sender{
    clickedSegment = [myAngleType selectedSegmentIndex];
}
-(IBAction)selectAngle:(id)sender{
    self.clickedSegment = [myAngleType selectedSegmentIndex];
}

这里的
clickedSegment
是一个整数,我在标题中将它作为属性公开。现在我想在我的另一个视图控制器中使用此
clickedSegment
的值,但每当我创建该VC(segmented controller one)的实例并尝试使用
clickedSegment
,无论我选择了其他段1还是2,我总是得到0作为值。它总是零。我哪里出错了?

您没有正确使用合成设置器,您应该这样设置:

-(IBAction)selectAngle:(id)sender{
    clickedSegment = [myAngleType selectedSegmentIndex];
}
-(IBAction)selectAngle:(id)sender{
    self.clickedSegment = [myAngleType selectedSegmentIndex];
}

第二个视图控制器如何知道第一个视图控制器中的任何属性?这是不可能的,除非您明确地获得对它的引用

// in second view controller
FirstViewController *firstVC = 
   (FirstViewController*)[self.tabBarController.viewControllers objectAtIndex:0];

NSLog(@"clicked segment: %d", firstVC.clickedSegment); // assuming int

是的,但在第一个VC中clickedSegment仍然为零,我取了一个值日志,它确实被更改了,但是我转到其他选项卡,没有更改!零-_-首先非常感谢!但我有一个很快的问题,为什么这不起作用。。。FirstViewController*firstVC=[[FirstViewController alloc]init];。。。然后使用firstVC.clickedSegment?我已经在标题中导入了firstVC。因为您必须引用活动视图控制器,而不是创建新实例。从逻辑上讲,新实例的所有属性都为空。