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。因为您必须引用活动视图控制器,而不是创建新实例。从逻辑上讲,新实例的所有属性都为空。