2011-12-23 15 views
0

私のストーリーボードでビューの一部を再利用しようとしています。 私はuitabbarcontrollerで始まり、各タブにいくつかのビューを接続しています。 新しいuitabbarcontrollerをストーリーボードにドロップし、そのタブの1つを元のタブバーに接続されている同じビューコントローラーに接続したいとします。uitabbarcontroller storyboard:すでに別のuitabbarctrlに接続されているビューコントローラを接続しています

このようなストーリーボードのビューコントローラーを再利用できますか?または、新しいViewControllerを作成する必要がありますか? 私は元の作品を前提としています。私はストーリーボードのどこで「押してください」を選択することで他のことをすることができます。 私が「関係」を選択すると、uitabbarでうまく動作しません。

ok。私はクラッシュの原因を見つけ、何が起こっているのか分かっていると思う。別のuitabbarcontrollerを接続すると、最初のタブバーのビューのインデックスが壊れてしまうようです。私はできるだけ早く私は二uitabbarがインデックス1は、(ストーリーボードは、それがあることを示しているにもかかわらず)そのクラスではないことが判明接続するよう

UINavigationController* ar_nav=[self.viewControllers objectAtIndex:1]; 
_artvc = [ar_nav.viewControllers objectAtIndex:0]; 
if (![_artvc isKindOfClass:[ArtistTableViewController class]]) 
{ 
    TGLog(@"ERR wrong class! %@", [_artvc class]); 
    exit(0); 
} 

を使用してuitabbarでviewcontrollersへの参照を取得しやっています。私は二uitabbarを接続するまで、私の元タブバーコントローラ

UINavigationController* n; 
for (n in self.viewControllers) 
{ 
    UIViewController* vc=[n.viewControllers objectAtIndex:0]; 
    TGLog(@"%@", [vc class]); 
    if ([vc isKindOfClass:[ArtistTableViewController class]]) 
    { 
     _artvc = (ArtistTableViewController*)vc; 
    } 
    if ([vc isKindOfClass:[SongsTableViewController class]]) 
    { 
     _stvc = (SongsTableViewController*)vc; 
    } 
    if ([vc isKindOfClass:[AlbumTableViewController class]]) 
    { 
     _altvc = (AlbumTableViewController*)vc; 
    } 

} 

にこのコードを使用して

が正常に動作します。私がそれをしたら、私のviewcontrollerはループから消えてしまいました。

+0

私のストーリーボードのスクリーンショットです。 – roocell

答えて

0

ok。私はUITabbar-> navcontroller-> uitableviewをやっているという事実をもって(おそらく)何かを持っています。

私は自分の2番目のタブバーを追加し、それ自身のnavcontrollerを作成して接続します。その後、navcontrollerからtableviewに接続することで元のtableviewを '再利用'します。これは、元のタブバーを台無しにしていないようです。

は、ここで私は空白のプロジェクトとのより良い質問を再作成するつもりです http://www.thumbgenius.dynalias.com/tabbar_vc_reuse.png

0

間違いなく可能です。あなたは接続がビューにあることを確信していますか?

私はお詫び申し上げます。それは不明であった。青色の接続線をコントロールしてドラッグしているときは、ビュー自体に接続していることを確認してください(他のものではありません)。

UITabBarControllerとビューが別のUITabBarControllerによって共有されている場合でも、その関係を作成できる必要があります。

試してみるとどのようなオプションが表示されますか?

+0

助けてくれてありがとう。私はuitableviewcontrollerにドラッグしています。それは私に4つのオプションを与える:関係、プッシュ、モデル、カスタム。私はそのビューコントローラを自分のタブのVCにしたいので、私は関係を選択すると仮定します。すぐにクラッシュします。ストーリーボードがロードされていると仮定します。 – roocell

+0

ストーリーボードに新しいVCをドロップして使用しても問題ありません。すでに使用されているものではありません。 – roocell

+0

多分私は何かを明らかにすべきだった。私はuitabbar-> navcontroller-> uitableviewを持っています。それはそこにあるnavcontrollerと何か関係がありますか? (私はnavcontrollerとtableviewの両方に接続しようとしました。 – roocell

関連する問題