1

デフォルトのIASKAppSettingsViewControllerの動作を微調整して、カスタムビュー(タイプ= IASKCustomViewSpecifier)にカスタムサブビューコントローラー(タイプ= PSChildPaneSpecifierの場合)を提供できるようにしようとしています。

コードに新しい機能を追加せずに、IASKAppSettingsViewController をサブクラス化しようとしました。

ただし、独自のサブクラスをロードすると、設定ビューは完全に空です-裸のサブクラスであっても。デフォルトの IASKAppSettingsViewController に戻すと、すべてが期待どおりに機能します。

サブクラスのさまざまな場所にブレークポイントを設定しようとしましたが、何も表示されないことを除いて、すべて正常に動作しているようです。

ドキュメントで手がかりを探してみましたが、理由を説明するものが見つからないようです。InAppSettingsKit のドキュメントには、サブクラス化用に設計されているとさえ記載されています。

ここで何が欠けていますか?手がかりをいただければ幸いです。または、ダミーのための小さなステップバイステップガイドがあればさらに良いでしょう。

コードで更新:

フリップサイド ビューの設定。標準の IASKAppSettingsViewController で動作しますが、空の派生 MyCustomSettingsViewController で失敗します

- (IBAction)showInfo:(id)sender
{    
    // Setup navigation controller for settings view
    MyCustomSettingsViewController *settings = [[MyCustomSettingsViewController alloc] init];
    //IASKAppSettingsViewController *settings = [[IASKAppSettingsViewController alloc] init];
    settings.delegate = self;
    settings.showDoneButton = YES;
    UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:settings];
    navigation.navigationBar.barStyle = UIBarStyleBlack;
    [settings release];

    // Display the settings
    navigation.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:navigation animated:YES];
    [navigation release];
}
4

2 に答える 2

1

このメソッドをサブクラスに追加してみてください。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    return [super initWithNibName:@"IASKAppSettingsView" bundle:nibBundleOrNil];
}

そうしないと、デフォルトの実装がIASKAppSettingsViewController開始され、クラス名にちなんで名付けられたペン先(この場合は「MyCustomSettingsViewController.nib」)が検索されます。これはおそらく存在しません。

これは、-init呼び出しのデフォルトの実装-initWithNibName:nil bundle:nilnilファイル名がデフォルトのペン先を検索することを意味するために発生します。

于 2011-06-17T19:41:47.177 に答える
0

初期化ステップにブレークポイントを設定してみてください。それをサブビューとして追加するか、ナビゲーションコントローラーをプッシュする場合。問題を見つけることができるように、各メソッドに NSLogs を使用します。何も機能しない場合は、問題を再現するコード (IASKAppSettingsViewController を使用してデモ コードを作成) を送ってください。問題を調査します。

于 2011-06-14T00:55:15.030 に答える