1

ストーリーボードを使用している iPad アプリに ILColorPicker を移植しようとしています。

UIViewController に UIView を配置しました。その UIView には、他に 3 つの UIView があります (以下の灰色で、含まれている UIView には黒い背景があり、境界線が表示されます)。 ここに画像の説明を入力

3 つのビューのそれぞれに、サンプルと一致する接続があります。

接続のこのイメージは、最上位の UIView 用です。 ここに画像の説明を入力

これは、中央の UIView の接続のイメージです。 ここに画像の説明を入力

これは、下の UIVIew の接続のイメージです。 ここに画像の説明を入力

シミュレーターでアプリを実行し、このコントローラーのメニュー タブ ボタンをクリックすると、黒い画面しか表示されません。さらに、「viewDidLoad」に NSLog を配置すると、そこを 6 回通過します。

私はこれに1週間以上取り組んできましたが、私の経験と知識が私を助けることができるものの終わりに達しました. 誰かがここで何が間違っているのかを理解するのを手伝ってもらえますか? 本当に、本当に感謝しています。(コードは必要に応じて提供されます。ここで本を書きたくなかっただけです!) :D

更新:「viewDidLoad」のコード

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"viewDidLoad");
    //  Build a random color to show off setting he color on the iPad
    UIColor *c = [UIColor colorWithRed:(arc4random()%100)/100.0f
                                 green:(arc4random()%100)/100.0f
                                 blue:(arc4random()%100)/100.0f
                                 alpha:1.0];

    colorChip.backgroundColor = c;
    colorPicker.color = c;
    huePicker.color = c;
}

更新 2:「didFinishLaunchingWithOptions のコード

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}
4

1 に答える 1

1

デリゲートが何に設定されているかはわかりませんが、ビューではなくコントローラーに接続する必要があります。そうは言っても、IBOutletsが接続されていることを確認します。私は、アサーションを使用してチェックします。

単一のビュー+ビューコントローラーを備えた空白のストーリーボードプロジェクトから、私はあなたが持っているものに似たものをスケルトンしました、これが私が得たものです:

  // ViewController.h
  @protocol MyPickerDelegate <NSObject>
  - (void)myPickerDidPick:(id)sender;
  - (void)myPickerPickColor:(id)sender color:(UIColor*)color;
  @end

  @interface ViewController : UIViewController<MyPickerDelegate>
  @property (weak) IBOutlet __weak UIView *colorBar;
  @property (weak) IBOutlet __weak UIView *saturationBrightnessPicker;
  @property (weak) IBOutlet __weak UIView *huePicker;
  @end

  // ViewController.m
  @interface ViewController () {
    __weak UIView *colorBar_;
    __weak UIView *saturationBrightnessPicker_;
    __weak UIView *huePicker_;
  }
  @end

  @implementation ViewController

  @synthesize colorBar = colorBar_;
  @synthesize saturationBrightnessPicker = saturationBrightnessPicker_;
  @synthesize huePicker = huePicker_;

  - (void)viewDidLoad {
    [super viewDidLoad];

    NSAssert(colorBar_, @"colorBar not connected");
    NSAssert(saturationBrightnessPicker_, @"saturationBrightnessPicker not connected");
    NSAssert(huePicker_, @"huePicker not connected");

    self.view.backgroundColor = [UIColor blackColor];  
    colorBar_.backgroundColor = [UIColor redColor];
    saturationBrightnessPicker_.backgroundColor = [UIColor greenColor];
    huePicker_.backgroundColor = [UIColor blueColor];
  }

  - (void)myPickerDidPick:(id)sender {
    NSLog(@"Did pick");
  }

  ...

  @end

お役に立てれば!

于 2012-04-25T15:16:58.477 に答える