iOSのプログラム開発初心者です。
分からないことがあるので教えて下さい。
複数の画面を順に遷移していく場合で、それぞれの画面にUIViewControllerを継承したクラスを紐付けたとき、それぞれのクラスのなかでviewDidLoadメソッドが作られています。このメソッドは各画面が生成されるときに一度だけ呼ばれる理解しておりました。
しかし、下のように画面遷移するプログラム作りで確認したところ、viewDidLoadは、segue で遷移するたびに呼ばれていることが分かりました(最初のViewControllerと2番目のViewController画面中央にあるボタン「Next_View」は次の画面へのsegueです)。ただし、NavigationControllerが勝手に作ってくれるbackボタンでは呼ばれません。
また、最後の画面の「to_Top」はUnwind Segueで、最初の画面に戻りますが、これでもviewDidLoadは呼ばれません。
「back」ボタンでは、メソッドviewWillAppearは呼ばれているようです。
そこで、質問です。
1.書籍を参考にBLE(Bluetooth Low Energy)関連のプログラムを作っています。viewDidLoad内で
self.centralManager = [[CBCentralManager alloc] initWithDelegate:self quece:nill] や
見つけたペリフェラルを入れていくために
self.peripherals = [[NSMutableArray array];
などとインスタンス化していますが、このようなことをするとメモリ上に同じようなインスタンスが、segueで遷移する
たびに作られるので、まずいことなのでしょうか。
2.そもそも、画面ができるときに viewDidLoadが1回だけ呼ばれると理解しておりましたが、segueするたびにviewDidLoad
が呼ばれるということは、そのたびに画面が出来ていくのでしょうか。それとも、アプリの起動時に画面はできており
(インスタンス化されており)、単純に約束事としてsegue遷移でviewDidLoadは呼ばれ、「back」ボタンでは呼ばれな
いだけでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。