Я хочу обновить UITableView с помощью прокрутки UISwipeGestureRecognizer ... и заставить его выглядеть так, как будто он сдвигается справа (или слева), а затем просто обновляет CURRENT UITableView данные с новыми данными.Как проведите по экрану с помощью UISwipeGestureRecognizer, чтобы вставить и обновить SAME uitableview
ОК ... здесь подробнее. У меня есть UITableView внутри UINavigationController. В этой таблице приведены данные, относящиеся к дате - в основном, такие вещи, как заметки на сегодня, время и даты встреч и т. Д. Я хочу разрешить правый или левый пробел (используя UISwipeGestureRecognizer), чтобы вызвать слайд с текущей таблицы и слайд на новой таблицы со событиями следующего дня (или в предыдущий день ... в зависимости от направления стороны). Способ, которым я пытался это сделать, - просто заставить текущий ScheduleViewController
позвонить себе ПОСЛЕ установки новой даты (newDate
). Хорошо, это работает, ВИД. SwipeScheduleViewController не заполняет весь экран iphone. Отсутствует область панели вкладок внизу ... и ПОТОМУ ЧТО она находится в UINavigationController, возвращаясь с этой вкладки, и на этой вкладке возникают проблемы. PLUS это означает неспецифически БОЛЬШОЕ количество новых экземпляров, когда пользователь идет вперед и назад во времени. Это несостоятельно.
ScheduleViewController *swipeScheduleViewController = [[[ScheduleViewController alloc] initWithNibName:@"ScheduleView-iPhone" bundle:nil] retain];
swipeScheduleViewController.newDate = [NSDate date]; // (increment this or decrement it)
CATransition *transition = [CATransition animation];
transition.duration = 0.75;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
transition.delegate = self;
[self.view.layer addAnimation:transition forKey:nil];
[self.view addSubview:swipeScheduleViewController.view];
//[swipeScheduleViewController release]; // <-- leaving this in causes crash due to "Deallocated instance" during cellforRowAtIndexPath
Итак, я думал: Есть ли способ, чтобы установить newDate
(не проблема), а затем обновить текущую таблицу (здесь возникает проблема:) МОДЕЛИРОВАНИЯ слайд в/из функции, что можно было бы ожидать.
ИЛИ я думаю об этом полный неправильный путь? Кто-то ранее предложил программно созданный UITableView внутри горизонтального прокручивания UIScrollView, но у этого табличного представления есть много вещей, которые специфичны и трудно согласовать с чем-либо, кроме NIB, связывающего UIViews и т. Д. С моими свойствами внутри файла .m
.
EDIT
Возможно, я не полностью объяснил себя, поэтому здесь идет речь: мне требуется, чтобы весь стол скользил с экрана и переходил на другой. Нет, если и есть или нет. Благодаря тем, которые предложили скользящие ряды ... но они не обеспечивают эту гибкость ...
Я не хочу казаться неблагодарным, но я не полностью понимаю метод, чтобы иметь ОДИН нить/представление, содержащее UITableViw (внутри UINavigationController) и нажав это на экране - заменив его SAME nib/view, содержащим UITableView.
Причина Я спрашиваю, Matt, ваше решение является то, что если я не «замечание из» [swipeScheduleViewController release];
в приведенном выше коде, я получаю «высвобождены экземпляр» во cellforRowAtIndexPath ошибки. Это, по-видимому, указывает на то, что iOS не сохраняет swipeScheduleViewController в памяти и не создается, если я не выпущу его. Не освобождая его и, таким образом, предотвращая крах - результат в объекте в памяти и, следовательно, в утечке памяти. Вот почему я сказал, что это опасно делать (в комментариях к вашему ответу) Спасибо. Хотя!
Проблемы, которые вы видите, - это то, что вы делаете, так неправильно. Вы полностью злоупотребляете контроллером представления.Вы должны * никогда * просто взять контроллер просмотра и засунуть свой вид в свой интерфейс, как вы здесь делаете. Либо используйте встроенные типы контроллеров родительского представления, либо разработайте собственный контроллер родительского представления (контроллер представления контейнера) и выполните переход правильно. Вы можете легко перейти к просмотру, да, но не злоупотребляйте контроллером представления одновременно. – matt
[meta] закрытый как слишком локализованный BS. У меня такой же вопрос. – stefann
stefann, пожалуйста, нажмите ссылку «повторно открыть», если вы считаете, что ее следует открыть заново. Я сделал! Это было важно для меня. – Jann