0

XIB(ストーリーボードで正確に)で説明されているコントロールをセグメント化し、コントローラークラスを参照しています。言語に応じてセグメント化されたコントロールタイトルを変更しようとしていますが、変更できません。セグメント化されたコントロールをログに記録すると、XIBで作成したり、プログラムで作成したりしても、セグメントがないと表示されます。誰かが何が悪いのか知っていますか?

コード:

NSLog(@"segments:%d", [segmentControl numberOfSegments]);
[segmentControl removeAllSegments];
[segmentControl insertSegmentWithTitle:@"stuff" atIndex:0 animated:NO];
[segmentControl insertSegmentWithTitle:@"other stuff" atIndex:1 animated:NO];
NSLog(@"segments:%d", [segmentControl numberOfSegments]);

両方のログ出力にゼロが表示されます

4

2 に答える 2

0
    -(void)loadView
    {{
            [スーパーロードビュー];
            UISegmentedControl * seg = [[UISegmentedControl alloc] initWithItems:
                                       [NSArray arrayWithObjects:@ "111"、@ "2222"、@ "333"、nil]];
            seg.frame = CGRectMake(0、0、300、50);
            [seg addTarget:self action:@selector(changed :) forControlEvents:UIControlEventValueChanged];
            [self.view addSubview:seg];
            [セグメントリリース];
    }

    -(void)changed:(UISegmentedControl *)segmentControl
    {{
            NSLog(@ "segments:%d"、[segmentControl numberOfSegments]);
            [segmentControl removeAllSegments];
            [segmentControl insertSegmentWithTitle:@ "stuff" atIndex:0アニメーション:NO];
            [segmentControl insertSegmentWithTitle:@ "other stuff" atIndex:1アニメーション:NO];
            NSLog(@ "segments:%d"、[segmentControl numberOfSegments]);
    }

コードは正常に機能します。

于 2012-08-02T10:14:50.410 に答える
0

問題はコードではなく、ストーリーボード自体にあることがわかりました(ローカリゼーションで半日プレイしました)

ストーリーボードが1つでもあることがわかりましたが、en.Iprojにあると混乱しました(別の言語では到達できなかったようです)。メインフォルダに取り出して、すべてが再び機能するようになりました。

于 2012-08-02T10:23:49.890 に答える