質問

iTunesuのStanford CS193Pコースを経て、最近閲覧された写真部分の課題4。

課題には、2つのタブ付きのタブバーコントローラがあります。 1stタブは、写真とスクロールビューをプッシュする写真名の表をプッシュする場所を表示するナビゲーションコントローラです。 2番目のタブは、最近表示された写真のテーブルを表示するナビゲーションコントローラです。

最初のタブが作動しています、そして今すぐスクロールビューを画像で押すと、その写真を最近の写真の配列に追加したいです。この最近の写真アレイを所有する必要がありますか?

  1. タブビューコントローラ(ドキュメントがこのクラスがサブクラス化のためのものではないと言う場合)

  2. 第2タブのルートテーブルビューコントローラ(現在の写真をインスタンスに渡すにはどのように渡すにもかかわらず、最初のタブが2番目のタブについて知っている必要があります) < / li>

  3. 第1タブのルートテーブルビューコントローラ(次に、2番目のタブは最初のタブからこのデータをどのように引き出すのか?)

  4. 何か

    私はまだMVC、プロトコル、代表団、およびデータソースについて漠然としていると思います。あなたがこの仕事をあなたの解決策を持っているならば、私は私がそれを鑑賞することができるでしょう。

    私はユーザーのデフォルトからデータを押して引っ張りました。 私はタブバーコントローラがサブクラシを意図していない理由です。それは、複数のタブで必要なときにデータのための最も論理的な場所のようです。

役に立ちましたか?

解決 2

追加の検索の束の後、タブからタブへのデータを渡す1つの一貫した方法が見つかりませんでした。

私たちは比較的少量のデータを保存しているので、クラスメソッド(便宜上)でクラスを作成し、データをユーザーのデフォルトにプッシュアンドプルイングすることにしました。

他のヒント

私は似たことをやった、そして私があなたの質問を完全に絶賛しなかったならば、あなたはいくつかの種類の共有データベースのように行動することができるシングルトンを作成することができます。初めて使用するときに作成したばかりの通常の方法で初期化されることはありません。このシングルトンにはあなたの配列を含めることができ、あなたはそれからそれをすべての場所からそれを書くことによってそれを呼び出すことができました:

[SingeltonType main].sharedPhotos
.

次の例は、アプリの所有者である「ユーザー」がある自分のコードからのものです。そこで私はランタイム中にどこからでも利用可能になる情報とデータベースを保存します。

ヘッダ:

@interface User : NSObject {
Database *_storage;
}

@property (nonatomic, retain) Database *storage;

+(User*)owner;
.

メインファイル:

#import "User.h"

@implementation User

@synthesize password = storage = _storage;

static User* _owner = nil;

+(User*)owner {
    @synchronized([User class]) {
        if(!_owner) [[self alloc] init];

        return _owner;
    }
    return nil;
}

+(id)alloc {
    @synchronized([User class]) {
        NSAssert(_owner == nil, @"Attempted to allocate a second instance of a singleton.");
        _owner = [super alloc];

        return _owner;
    }
    return nil;
}

-(id)init {
    self = [super init];

    if(self != nil) {
        self.storage = [[[Database alloc] init] autorelease];
    }
    return self;
}
.

それから私はちょうどこのようにそれを呼び出す:

[User owner].storage // which gives me access to it 
.

助けを願っています!別の場所からデータにアクセスする必要がある場合は、本当に便利です。)

注:このオブジェクトのインスタンスは1つだけ、さらに作成できません。

私はプロトコルを使ってその質問を少しめちゃくちゃにしました。Image(およびUIScrollView)を表示するクラスにプロトコルを作成しました。その後、「表示された写真」TableControllerクラスのプロトコルを採用し、閲覧画像を通過するプロトコルメソッドを実装しました。私が持っている問題は、「表示された写真」TableControllerクラスをデリゲートとして定義していますか。プロトコルを宣言するクラスを指すコントローラとタブコントローラ。プロトコルやクラスメソッドがプログラミング方法論から正しい方法であるかどうかについての専門家から聞きたいのですか?

感謝 kb

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top