Iphone 分段控件始终返回0
我正在使用一个带有导航项的TabBar应用程序,其中包含一个Iphone 分段控件始终返回0,iphone,uinavigationcontroller,indexing,switch-statement,uisegmentedcontrol,Iphone,Uinavigationcontroller,Indexing,Switch Statement,Uisegmentedcontrol,我正在使用一个带有导航项的TabBar应用程序,其中包含一个UISegmentedControl 当捕捉到“值已更改”事件时,我连接了一个方法 该方法始终捕获0作为分段索引 这是我的头文件: #import <UIKit/UIKit.h> @interface GraphNavController : UINavigationController { IBOutlet UIImage *image; CGPoint gestureStartPoint;
UISegmentedControl
当捕捉到“值已更改”事件时,我连接了一个方法
该方法始终捕获0作为分段索引
这是我的头文件:
#import <UIKit/UIKit.h>
@interface GraphNavController : UINavigationController {
IBOutlet UIImage *image;
CGPoint gestureStartPoint;
UISegmentedControl *segmentedControl;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
-(IBAction) segmentedControlIndexChanged;
-(void)journalier;
-(void)mensuel;
-(void)annuel;
@property (nonatomic, retain) IBOutlet UIImage *image;
@property (nonatomic, retain) IBOutlet UISegmentedControl *segmentedControl;
@end
我希望我们能找到解决办法
非常感谢这个问题的一个可能解释是自我分段控制为零。self.segmentedControl是否作为IBOutlet?还是用代码创建的?检查self.segmentedControl==nil 我也遇到了同样的问题,并与nill UISegmentedControl的bug进行了斗争 我找到了答案。 有时您也会遇到同样的问题,但您在XIB中拥有所有连接 问题:您在自我分段控制中有nill。 在大多数情况下,当您将所有内容都连接到XIB correct时,它也将不起作用 原因:由于对Objective-C的研究不同,我们使用了不同的代码编写风格 决策:例如,我们在界面UISegmentedControl*控件中编写强> 当你“合成”时,你会怎么做? 如果你写@synthetic control=\u control当您这样写时,您将始终拥有nillNSLog(@“%i”,control.selectedSegmentIndex) 因此,我们在@synthesis或代码中存在错误 决断 为你这些写着“综合控制”的人;使用控件。selectedSegmentIndex 为你写@synthetic control=\u control;使用_控件。选择分段索引
一切正常。谢谢你的帮助。对于我的例子,NSLog(@“self.segmentedControl==%d”,self.segmentedControl);返回我0。segmentedcontrol是一个出口(我已经更新了我的初始帖子以显示标题^^^)0为零。问题是self.segmentedControl为零。您是否在Interface Builder中指定了IBOutlet?我必须链接哪些元素???BarSegmentedControl与什么有关?很抱歉我没有和卖场联系!我已经将GraphNavController的插座连接到分段的酒吧,它正在运行。。。初学者的错。。。万分感谢!!!我采取了无符号的短期和存储更改的段索引,因为它的变化问题解决了。
-(IBAction) segmentedControlIndexChanged{
switch (self.segmentedControl.selectedSegmentIndex) {
case 0:
NSLog(@"1");
break;
case 1:
NSLog(@"2");
break;
case 2:
NSLog(@"3");
break;
default:
break;
}
}