私は素早く初心者ですが、HTML、CSS、およびJavaで適切な背景を持っています。私はこのアカウントを文字通り単にこの質問をしたので、私はその点までまっすぐになるでしょう。押されたボタンに応じてtableViewControllerにデータを渡す
私は本当に素早く楽しんでいますが、文字通り、同じコードを何度も何度も繰り返し書いていました。無数のチュートリアル、本、ガイドなどを見直してください。私はうそをつくつもりはない、私はreaaaally私はこれを把握しようとしているとして私のコンパイラでスタック10 +エラーを見てうんざりしています。
私はViewControllerを持っています。私はTableViewControllerを持っています - ViewControllerは私のホーム画面です。上記のviewControllerには、2つのボタンがあり、1つはBuildingItems、もう1つはBuildingBlocksです。どちらもセグである。
私のTableViewControllerでは、私はbuildBlocksとbuildItemsを持っていて、どちらも配列が定義されています。
私がやろうとしていることは、ユーザーが選択したボタンに依存しています。私はそれを私のテーブルビューに入力するためのデータにします。私は通常のcell.textLabel?.text = arrayNameHere [indexPath.row]を使用してテーブルビューを具体的に取り込むことができますが、明らかにそれは私の問題を解決しません。
ここで私を助けてくれることを願っています。私は虚偽の文法とフォーマットについてお詫び申し上げます。私は文字通りこの週に4〜5時間を過ごしました。これをうまくやってみると、怒ってしまい、私のプロジェクト全体を3回別々に削除しました。以下のコードを追加します。もう一度、フォーマットを許してください。なぜ私は素早く把握できないのか分からないので、デリゲートのあらゆるバリエーションを試してみて、何かを渡してもうまくいきますが、何も動いていません。
のViewController:TableViewControllerで
@IBAction func BuildItems (_sender: Any) {
}
@IBAction func BuildBlocks (_sender: Any) {
}
:あなたは
let buildItems = ["these are all my", "arrays for this"]
let buildBlocks = ["same thing here","just saving time"]
class TableViewController: UITableViewController {
var myIndex = 0
override func tableView(_ tableView: UITableView, numberOfRowsInSection: Int) -> Int {
return buildItems.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell" for: indexPath)
cell.textLabel?.text = buildItems[indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
myIndex = indexPath.row
}
}
これはうまくいった!とてもありがとう!唯一のことは、一度に2つのセグを実行することです、なぜ私はそれほど確かではありません。それは私がやったことだと確信しています。それでも、ありがとうございました。この間、私は物事を困難な方法でやろうとしていました。 1つの質問 - 準備と委任の違いは何ですか? (初心者が理解できる、より愚かなバージョンで)ありがとう! – Tyler
prepare関数を使用すると、1 ViewControllerから別のViewControllerにデータを1方向に渡す最も簡単な方法です。デリゲートを使用して、データを後方またはどこかに実際に渡すことができます。基本的にVCはプロトコル(デリゲート)に準拠し、変更をリスンすることができます。したがって、1 VCは別のVCでメソッドを呼び出すことができます。 – nighttalker