1

アプリ内に設定を含めるためにInAppSettingsKitを使用しています。次の簡単な手順で、 xcode のストーリーボードを使用して設定ビューを構成しました。

1) ナビゲーション コントローラーとテーブル ビュー コントローラーを作成しました
。2) テーブル コントローラーでは、コントローラーとしてカスタム クラス IASKAppSettingsViewController を使用しました。

すべてが期待どおりに機能しますが、ユーザーが変更した設定が設定画面を離れた後に有効になるように、アプリを再構成しようとしています。

私が見つけた 1 つのチュートリアルでは、次のことを行う必要があります。

IASKSettingsDelegate プロトコルに準拠するデリゲートを作成します。現在のバージョンでは、 -settingsViewControllerDidEnd: が唯一の必須メソッドです。

したがって、デリゲートには次のようなメソッドが必要です。

- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender {
    [self dismissModalViewControllerAnimated:YES];
    [self reconfigure];
}

このデリゲートを作成するにはどうすればよいですか? このメソッドをどこに置くべきかわかりません。ストーリーボード接続インスペクターでデリゲート用のスペースがあることがわかりますが、接続できませんでした。デリゲートを説明するチュートリアルをたくさん読んだので、これを理解するのを手伝ってください。デリゲートを作成し、それをストーリーボードで作成したコントローラーに接続する簡単な手順が必要です。

ありがとうございました!

4

1 に答える 1

2

私はいくつかの進歩を遂げました(しかし、1つの問題があります)。これは私がしたことです:

コントローラのクラスとしてIASKAppSettingsViewControllerを使用する代わりに、IASKAppSettingsViewControllerから継承する別のクラスを作成しました。私はそれをSettingsControllerと呼びました

SettingsController.h

#import <UIKit/UIKit.h>
#import "IASKAppSettingsViewController.h"

@interface SettingsController : IASKAppSettingsViewController <IASKSettingsDelegate>
- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender;
@end

SettingsController.m

...
@implementation SettingsController
...
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.delegate = self;
    self.showDoneButton = YES;
}
- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender {
    // reconfigure code here
}
@end

そのため、基本的に、ストーリーボードを使用してデリゲート接続を作成しませんでした。<IASKSettingsDelegate>コントローラに書き込む必要がありself.delegate = self;、viewDidLoadメソッドで使用しました。

再構成を機能させるには、メインのView Controllerをデリゲート(settingscontrollerではなく)にする必要があります。私はそれをすることができませんでした。何か助けはありますか?

2回目の試行: わかりました。では、次を使用して試行します。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"settingsSegue"])
    {
        [[segue destinationViewController] setDelegate:self];
    }
}

しかし、それは機能しません。これは、destinationViewControllerがストーリーボードのnavigationControllerであり、設定があるテーブルビューコントローラーをすぐに表示するためだと思います。

于 2012-11-28T11:52:46.913 に答える