プログラマメモ2 - programmer no memo2

手でセグエ(セグーと僕は呼ぶ) 2013/10/21

またよくわからないタイトルですが、「手でセグエ(セグーと僕は呼ぶ) 」
xcodeでの実装メモです。

ストーリーボードでテーブルから次の詳細画面にいくさいに途中で、問い合わせダイアログみたいのをだしたいというわけです。その処理をどこで入れるのかというわけで、行選択時に表示したいわけですが、セグエが設定されている場合はそれを解除します。

デフォルトでできる動作だと行を選択で次の詳細画面にいってしまうので、それをストーリーボードでいったん切りにして、 代わりにmanualでpushできるようにします。そのときにstoryboard segueでidentifierを設定してあげます。
コード上で、そのidentifierを使ってperformしてあげるという流れになります。

UITableViewControllerに行を選択時の処理を実装していない場合は、 didSelectRowAtIndexPathを実装します。次の画面へいきたい場合は、

 [self performSegueWithIdentifier:@"showDetail" sender:self];
 してあげます。※ここでは、identifierをshowDetailとしています。





参考

ストーリーボードは思ったほど柔軟じゃない気がするのでXibと併用 2012/07/09

iosです。xcodeです。ストーリーボードです。
いまのところの僕の意見として、ストーリーボードは柔軟じゃないということです。
タブとかの画面とかは便利なのですが、ひとつのViewをいろいろデザインしたくなるときちょいと不便。というのもUIViewのサイズを大きくしてスクロールViewにのせたいというデザインを目論でいるので、ストーリボードだと画面のUIViewはコントローラーにのっけないといろいろデザインできないようだし、コントローラーのサイズは固定っぽい感じなのでアウト。
現時点での僕の解としてストーリボードでのUIViewContorollerを用意してその中でinitWithNibName使ってxibを読み込ませるって感じです。
ストーリーボードはUIViewContorollerのinitWithCoderを呼び出す動きをするのでinitWithCoderを実装してその中でinitWithNibNameを使うって流れになります。
参考コード

- (id)initWithCoder:(NSCoder *)coder { self = [super initWithNibName:NSStringFromClass([self class]) bundle:nil]; if (self) { // Custom initialization } return self; }

画面が表示されないストーリーボードのわな 2012/07/09

iosです。xcodeです。ストーリーボードです。 xcodeでストーリボードをがちゃがちゃいじっていてRUNさせるととつぜん表示されなったというときは、 起動ポイントを確認するといいかもしれない。ぼくは何度かこれでパニクっりましたです。

ストーリボードからよばれるUIViewって何からよばれるのさ 2012/05/28

iOSです。ストーリーボードです。
「ストーリボードからよばれるUIViewって何からよばれるのさ」ということですが、現在のところどうも

- (id)initWithCoder:(NSCoder *)coder
の感じです。
参考
objective c - How is view initialized when loaded via a storyboard? - Stack Overflow

Storyboard doesn't contain a view controller with identifier - identifierを設定しよう!! 2012/05/18


iphone - STORYBOARD - doesn't contain a view controller with identifier - Stack Overflow

下記のようなコードをうごかそうとしてエラーが
DataViewController *startingViewController = [self.modelController viewControllerAtIndex:0 storyboard:self.storyboard];
StoryBoardに何やらidentifierがないぞとおこられた。で、クラスだけ指定しただけではだめで、どこで設定するのかというと、そのものずばりAttribute inspectorにidentifierを設定する項目あり。ここでクラス名と同じものを指定してあげて、動いた。
ストーリーボードはすごく簡単なんだけど、こういうところではまると途方にくれる。identifierを指定する必要性があるところでしか気がつかないなー。