2017-08-03 7 views
0

私はすぐに私と一緒に素早く新しいです。方法:他のViewControllerの配列からユーザーを追加/削除しますか?

には、文字列を使用するviewController1があります。 ポップアップで、viewController2を追加したり、このuserArrayから削除する可能性があります。

ユーザは文字列を追加するのにtextFieldを使用するつもりですが、ユーザが配列の内容を見て簡単に削除できますか?

このデータをviewControllersの間で受け渡しするにはどうすればいいですか?それが保存されていることを確認してください。

ありがとうございます!

答えて

1

あなたはviewController1からviewController2へのセグエを持っていると仮定すると、あなたはsegue.destinationを使用して、あなたが好きにsegue.destination.userArrayプロパティを設定することができます。

segueがなく、モデルがビューコントローラ間で共有されている場合、静的プロパティuserArrayを持つ別のクラスを作成し、そのようにアクセスすることができます。

アレイの削除については、https://developer.apple.com/documentation/swift/array/1641390-remove

+0

すばらしい答えありがとう! 残念ながら私はもう別の問題に遭遇しました。 segueが実行され、私が望むViewControllerに到達すると、navbarの "戻る"ボタンがViewControllerに戻ってきます。私はsegue'dから戻ってくるべきViewControllerではなく戻ります。あなたはこれを解決する方法を知っていますか? – Alvarsson

+0

@ Alvarssonあなたは明確にしていただけますか?私があなたの説明から理解しているのは、それが意図された行動であるということです。幸運:) –

+0

もちろん!だから私は実際に3 ViewControllers、すべてのナビゲーションコントローラを使用しています。だから私が実行したいsegueはVC3からVC2までです。 しかし、私がセグの直後にVC2に戻ったとき、(VC2の)ナビバーの「戻る」ボタンがメインVC1ではなくVC3に戻ってきます。 VCビューイングビューアーです。私が何か言及するのを忘れてしまったら、ただ聞いてください。 @MihirThanekarありがとうございました – Alvarsson

-1

あなたのViewControllerクラスの外にあなたのArrayを書く。その後、他のViewControllerからアクセスできます。

例:

//ViewController1.swift 


import UIKit 

var userArray = [String]() 

class ViewController1: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 



//ViewController2.swift 


import UIKit 

class ViewController2: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     userArray.append("A") 
     userArray.append("B") 
     userArray.remove(at: 0) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

} 
+0

いいえ。これは悪い考えです。たいていの場合、グローバル変数(クラスや構造体のスコープ内にない)を追加する場合は、それを行うより良い方法があります。この場合、@ Mihirの答えの最初の部分が良いです。 – NRitH

関連する問題