2016-07-25 10 views
0

私は進行状況バーを持っています。このバーは、どのビューが表示されているかによって異なるビューで表示されるはずです。進捗状況は同じですので、可能であれば多くのビューで多くの進捗バーを作成するのではなく、これらのビューすべてで同じインスタンスを使用したいと考えています。また、そのようにしてプログレスバーのプロパティを変更する必要がある場合は、一般的に反映されますが、これは必須です。iOS - Swiftの異なるビューコントローラで小さなビューを使用する方法

どうすればこの共通の見解を使用することができますか教えてください。また、私の戦略が間違っている場合、そのようなシナリオのためのより良いデザインは何でしょうか。

+0

進捗バーを宣言するクラスを作成し、進捗バーをスーパービューに追加します。ですから、ビューコントローラで変更が発生した場合、プログレスバーは同じ位置に残ります – good4pc

+0

この質問がなぜ下降したのかわかりません。誰でも説明できますか? –

答えて

1

1)2つのオプションがあります。あなたは、新しいクラスViewBox(または任意の名前)を宣言し、次にあなたがセグエたり、次の画面に遷移した場合

あなたのコード内の最初のビューコントローラ

var box:ViewBox = ViewBox() 

、あなたが事前に定義された変数var box:ViewBox!を持つことができることを使用することができます。あなたがボタンを押したときに言って、ボタンが

nextViewController:UIViewController { 
    var box:ViewBox! 
} 

それとも、はるかに簡単な方法を行うことができ、それがUIPageViewController :)

をルックアップするためにある transition.

//Now setup the transition inside the Storyboard and name the identifier "toThirdViewController" 
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject?) { 
    if(segue.identifier == "toThirdViewController") { 
     var vc = segue.destinationViewController as! `nextViewController` //The class of your next viewcontroller goes here 
     vc.box = self.box 
    } 
    //Since The SecondViewController doesn't need ViewBox, we don't need it there. 
} 

と呼ばれる機能を持っています

+0

ビューが異なるストーリーボードからのものである場合、直接リダイレクトはありません。どうすれば対応できますか?たとえば、トランジションシーケンスでは、viewA - > viewB - > viewCとし、viewAとviewCにのみviewBoxを表示する必要があります。 –

+0

あなたはこれ以上のことを明確にできますか? 「ビューが異なるストーリーボードから来た場合、直接リダイレクトはありません」 – impression7vx

+0

私はviewBoxでviewBoxを表示しています。次にviewBoxに表示する必要のないviewBに移動します。それから、私はもう一度それを見せなければならない視点Cに行きます。他のシナリオではviewAを終了し、親ビューからviewCに移動することができます。これらのシナリオをどのように処理できますか。 –

関連する問題