私のアプリの一部では、ボタンをクリックすると新しいページが作成されます。ただし、そのページを以前に表示していたページとまったく同じにする必要がありますが、その新しいインスタンスにすぎません。SO でこれを行う最善の方法を尋ねたところ、ページングを有効にした UIScrollView が最善の方法であることがわかりました。それで、私がしようとしていたことをやろうとするコードを書きました。ただし、ボタンを押すと、アプリがクラッシュします。私はそれがある種の再帰に入ったと仮定しています(何度も何度も呼び出します)。何が間違っているのかについての洞察は素晴らしいでしょう。すべてのコンセントが StoryBoard のそれぞれの位置に接続されていることを確認できます。
-(IBAction)createContainer:(id)sender {
[allScrollViews addObject:self.containerView];
for (int i = 0; i < allScrollViews.count; i++) {
CGRect frame;
frame.origin.x = self.containerView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.containerView.frame.size;
UIView *subview = self.view;
subview.backgroundColor = self.view.backgroundColor;
[self.containerView addSubview:subview];
}
self.containerView.contentSize = CGSizeMake(self.containerView.frame.size.width * allScrollViews.count, self.containerView.frame.size.height);
}
繰り返しますが、ボタンを押すと、現在表示しているビュー (ViewController.m) がほぼ複製され、新しいページに新しいインスタンスが作成されます。私のコードが、私が達成しようとしているものに近いことを願っています。
どうもありがとう!〜カーペットフィズ
編集:それが役立つ場合、これはアプリがクラッシュしたときに強調表示されます:
0x2281b61: calll 0x2281b66 CA::Layer::ensure_transaction_recursively(CA::Transaction*) + 14