Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 分段控件始终返回0_Iphone_Uinavigationcontroller_Indexing_Switch Statement_Uisegmentedcontrol - Fatal编程技术网

Iphone 分段控件始终返回0

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;

我正在使用一个带有导航项的TabBar应用程序,其中包含一个
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;
    }

}