2012-01-21 9 views
0

私はxib内のビュー内にUISegmentedControlを持っています。私のアプリケーションデリゲートでは、initWithNibName:を使用してファイルの所有者であるコントローラを作成してから、ナビゲーションコントローラ(UINavigationController initWithRootViewController)内にラップします。UISegmentedControl setImage:またはsetText:not working

は、その後、私はこのようなセグメント化されたコントロール内の要素の画像やタイトルのいずれかを設定しよう:

[self.viewController.segmentControl setImage: [UIImage imageNamed:@"some_image.png"]forSegmentAtIndex: 3]; 
[self.viewController.segmentControl setTitle: @"some text" forSegmentAtIndex: 2]; 

セグメント化されたコントロールが表示されているが、setImage:とのsetTitleは:何の効果も持っていません。 最初の2つのセルは、最初にIBの中でドラッグ・アンド・ドロップするときに割り当てられるデフォルト値であるFirstとSecondをそれぞれ示しています。

segmentControlはIBOutletであり、セグメント化されたコントロールに接続されていることを確認しました。

なぜ機能しないのですか?

私はイメージやテキストをIBで設定できますが、動作させることはできますが、私はそれらをプログラムで設定できない理由を理解したいと思います。

(セグメント化されたコントロールには6つのインデックスがあります)。

+1

(それが最も重要な場所)のNSLog 'self.viewController.segmentControl'はそれがnilではないことを確認することができましたか? – smparkes

+0

作成されていない - 私はinitWithNibName:が呼び出されたときにペン先のすべてが作成されると思った?私がデリゲートでそれを調べるとき、そのnilなら、それはどのように表示されていますか? – Gruntcakes

+0

ivar /プロパティが設定されていないほど、作成されていないかどうかはわかりません。私は実際にIBのものを手伝うことはできません。私はそれを使用しないので、私はそれを使用する方法を忘れてしまった... – smparkes

答えて

0

なぜアプリケーションデリゲートにセグメント化されたコントロールを設定していますか?ファイルの所有者(viewController)の属性を調整してはいけませんか?私はおそらく、viewControllerのviewDidLoadメソッドでこれを行うか、とにかくIBを使用しているので、単純にイメージとタイトル属性をXIBに設定します。

0

このコードを使用し

[segmentControl setImage: [UIImage imageNamed:@"some_image.png"]forSegmentAtIndex: 3]; 
[segmentControl setTitle: @"some text" forSegmentAtIndex: 2]; 
関連する問題