2016-07-17 4 views
2

私はどこに行ったのかを説明するためにいくつかの背景を提供する必要があります。私は別のセグを含むインタラクションを作成しようとしています(下からスライドし、右からスライドします)、ナビゲーションコントローラーに埋め込まれているシーンの中でこれら2つのスタイルを混在させることはできません。ショーセグは、私がしている場合にのみ、右から左に表示されます。私のUITableViewControllerをネストされたUITableViewにリンクできません

私が欲しいの動作は次のとおりです。初期ビューコントローラ - (下からセグエ)>設定 - > - >選択した設定(右から左に「標準」セグエ)

についての詳細私はまた、ナビゲーションを入れたいです[設定]にあるバーは、私がこのような(上から下に視界の外スライドを)ビューを閉じます完了]ボタンを持つことができますので、表示します。

enter image description here

私は、ナビゲーションバーを追加できなくなる

インターフェイスビルダーナビゲーションコントローラを使用していて、それがない場合は、次のようになります。

enter image description here

だから、私はネスティングビューを示唆しthreadから何かを試してみました。それはほとんどうまくいく(上記の最初のスクリーンショットはそのコードから取られた)が、新しい問題を引き起こした。その問題は、ネストした `UITableViewController 'を自分のSettingsTableViewController.swiftカスタムクラスにリンクできないことです。それは単にクラスのドロップダウンリストのオプションではないので、設定オプションのテーブルを設定することはできません。

は、ここで私は今、そのスレッドからの提案に基づいている階層です。また

enter image description here

、私は私のSettingsTableViewController.swiftUITableViewControllerをサブクラス化していることが確認されました。

私は困惑しており、本当に助けに感謝します。

+0

、幸運を意味を成していない場合。しかし、私はあなたが盲目的な路地を向いていると思います。あなたの設定ビューコントローラを 'UINavigationController'に埋め込み、次に'現在のモーダル 'セグを使って 'UINavigationController'を表示することで、あなたが望むものを達成できると思います。次に、設定ビューコントローラの「ショー」セグを使用します(スライドを右から効果させる)。 – pbasdf

+0

ああ、それは愚かな間違いのようなものです。私は 'UITableViewController'を使って作業することに慣れています。私はこれを習慣の1つとして使用しようとしていました。私はもともと、あなたが提案したその道を、現時点ではモーダルを使って始めましたが、最初のセルが高すぎる上の2番目のスクリーンショットに見られる問題が生じました。私は、ステータスバーと最初のスクリーンショットのような最初のセルの間にナビゲーションバーが必要ですが、ナビゲーションコントローラにすべてを埋め込んだらIBは私を私に任せません。 – Jim

+0

IBでは、属性インスペクタの "Extend edges:Under below bars"のチェックを外します。 UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@ "完了"スタイル:UIBarButtonItemStyleBordereredターゲット:自己アクション:@selector(doneMethod :)]; – pbasdf

答えて

1

あなたはこれをしようとすると、

  1. はUINavigationControllerにのUIViewController、右クリックとドラッグにボタンを追加し、たとえば、便宜上のUIViewControllerとUINavigationController(これは自動的にのUITableViewControllerが付属しています。
  2. を追加します。
  3. 別のUIViewControllerを追加し、UITableViewControllerから新しいUIViewControllerにドラッグして右クリックし、 'didSelectRowAtIndexPath'を実行したときに参照できるプッシュセグを使用してください。

UITableViewControllerがUINavigationControllerのrootViewControllerであるため、接続する必要はありません。 UITableViewControllerを使用する場合は、その階層内にあるべき唯一のものはUITableViewです。他のものが必要な場合は、UIViewControllerを使用してUITableViewを追加する必要がありますが、要件を満たすために必要とは思わないデフォルトのオプションを使用します。

コメントこれはあなたの緑の矢印がない `` UITableViewController` UITableView`、を指しているので、それはです....

+0

また、テーブルビューのナビゲーションバーに '完了'ボタンを追加するには、 self.navigationItem.rightBarButtonItem = doneButton;申し訳ありませんが、このコードが読めない場合は、必要に応じて回答を編集できます。 – JingJingTao

+0

偉大な答えをありがとう。私はDoneボタンを除いてほとんどすべてが働いています。私はあなたの '完了'ボタンコードを動作させることができませんでしたが、これを使って表示させることができました: 'navigationItem.rightBarButtonItem = UIBarButtonItem(title:"完了 "、スタイル:.Plain、target:self、action: ')。私はちょうど 'action'を適切に設定する方法を正確に把握し、segueを巻き戻し、モーダル設定ビューを閉じるようにします。 – Jim

+0

私が送ったコードは客観的なものではありませんでした。私はあなたの行動パラメータが 'action:#selector(yourDismissMethod)'のように見えると思います。 'yourDismissMethod'では 'self.dismissViewControllerAnimated 、完了:なし) 'モーダルを却下する。 – JingJingTao

関連する問題