2009-06-11 6 views
0

高レベルから私のアプリケーションのデザインに傷ついたような気がします。今、私は1つのコントローラ、App Delegate、2つのUIView(1つはScrollviewのサブクラス)とコントローラの1つのペンを持っています。MVC Question ... Controllerにコードを配置する場所と、UIViewサブクラスをネストする方法

IBでは、ファイル所有者のクラスをMusicGridControllerに設定してから、UIViewのクラスをMusicGridViewに設定しました。したがって、これらのクラスのインスタンスは、ペン先でインスタンス化されます。次に、私はUIScrollViewを持っています。これは、MusicGridViewの上にレイヤーを重ねたいということです。アプリの委任では、私はこれをやった:

@synthesize window; 
@synthesize viewController; 
@synthesize scrollView; 


- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  
    //[application setStatusBarHidden:YES animated:NO]; 
    //[window addSubview:viewController.view]; 


    scrollView.contentSize = CGSizeMake(480, 480); 
    scrollView.showsHorizontalScrollIndicator = NO; 
    scrollView.showsVerticalScrollIndicator = NO; 
    scrollView.alwaysBounceVertical = NO; 
    scrollView.alwaysBounceHorizontal = NO; 
// scrollView.maximumZoomScale = 4.0; 
// scrollView.minimumZoomScale = 0.75; 
    scrollView.delegate = self; 
// [viewController.view addSubview:scrollView]; 
    [window addSubview:scrollView]; 
    [scrollView addSubview:viewController.view]; 

    [window makeKeyAndVisible]; 
} 

だから、私は、ウィンドウにscrollViewのサブビューとしてコントローラの、ビューをscrollViewサブクラスを追加しています。

私はアーキテクチャに根本的に混乱していると思います。これまでユーザーとやり取りしていたコードのほとんどすべてが私のMusicGridViewにあり、コントローラは文字通り何もしません。

私が今実行している問題は、UIScrollviewのインスタンスをMusicGridViewインスタンスに渡す必要があることですが、正しいインスタンスに渡す方法がわかりません。

理想的には、UIScrollViewサブクラスのinitメソッドでMusicGridViewをロードし、UIViewをUIScrollViewサブクラスのインスタンスにするのが理想的です。それは働くだろうか?

答えて

1

あなたの質問全体に対処する方法がわかりません。しかし、現在のアーキテクチャでは、MVCのパラダイムに従っていないことがわかります。アプリケーションデリゲートは、アプリケーションをオフラインで取得する必要がありますが、クラスの内部責任のためにアプリケーションデリゲートにコードを追加する必要はありません。 scrollViewの

scrollViewが必要とすべきではないプロパティが(私は信じていません)

構成はどのようなビューのコントローラによって処理されなければならない(MusicGridView?)それが格納されている。containgは何scrollViewことオブジェクト?

scrollViewがUINavigationControllerのルートビューである場合、おそらくUINavigiationControllerのサブクラスがscrollviewインスタンスをセットアップする必要があります。

更新:

から:

理想的には、私はおそらく 負荷UIScrollViewのサブクラスのinitメソッド でMusicGridView、その後、 は多分UIViewのインスタンスも持つべきだと思いますUIScrollViewサブクラスの 。その仕事は でしょうか?

あなたの考えは正しいと思います。あなたのscrollview/MusicGridViewオブジェクトが表現していたものが混在していました。

関連する問題