Мне нужно сделать UIScrollView изнутри UIViewController, каждый UIViewController имеет UITableview.
Когда я нажимаю на UITableview, все UITableViewCell исчезают.
Как я инициализирую UIViewController внутри UIScrollView?
- (void)viewDidLoad {
[super viewDidLoad];
int width = 0;
for (int i = 0; i < [self.dishes count]; i++) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Order" bundle:nil];
OneDayDishViewController *myVC = (OneDayDishViewController *)[storyboard instantiateViewControllerWithIdentifier:@"OneDayDishViewController"];
myVC.dishes = self.dishes[i];
myVC.menuTitle = self.menuTitle;
[self.scrollView addSubview:myVC.view];
width += 375;
}
self.scrollView.contentSize = CGSizeMake(width,0);
}
После поиска в Google и переполнения стека я нашел это решение
Итак, я сделал что-то подобное
вмой файл .h (где у меня есть UIScrollView):
@property (strong, nonatomic) OneDayDishViewController *myVC;
чем в моем файле .m:
- (void)viewDidLoad {
[super viewDidLoad];
int width = 0;
for (int i = 0; i < [self.dishes count]; i++) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Order" bundle:nil];
self.myVC = [storyboard instantiateViewControllerWithIdentifier:@"OneDayDishViewController"];
self.myVC.dishes = self.dishes[i];
self.myVC.menuTitle = self.menuTitle;
[self.scrollView addSubview:self.myVC.view];
width += 375;
}
self.scrollView.contentSize = CGSizeMake(width,0);
}
Теперь у меня также есть N элементов вмой прокрутка, если я коснусь последнего элемента - он работает нормально, если я коснусь любого другого элемента - проблема та же.
Итак, что я делаю неправильно или как я могу создать (сильный) правильно динамически иэто хорошая практика?
Спасибо
UPDT: Спасибо @ CZ54, мое решение - добавить childviewcontroller, поэтому сделайте
[self addChildViewController:myVC];
[self.scrollView addSubview:myVC.view];
[myVC didMoveToParentViewController:self];
вместо
[self.scrollView addSubview:myVC.view];