У меня есть следующий метод в моем приложении.
- (void)next{
NSLog(@"called!");
NSArray *visibleItems = [self.collectionView indexPathsForVisibleItems];
NSIndexPath *currentItem = [visibleItems objectAtIndex:0];
NSIndexPath *nextItem = [NSIndexPath indexPathForItem:currentItem.item + 1 inSection:currentItem.section];
[self.collectionView scrollToItemAtIndexPath:nextItem atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES];
CATransition *fadeTextAnimation = [CATransition animation];
fadeTextAnimation.duration = 0.2;
fadeTextAnimation.type = kCATransitionFade;
[self.navigationController.navigationBar.layer addAnimation: fadeTextAnimation forKey: @"fadeText"];
self.navigationItem.title = @"Test";
}
Он отлично работает, когда я вызываю его из класса, в котором он реализован. Однако, если я вызываю его из другого класса, NSLog работает нормально, но больше ничего не происходит. Я предполагаю, что он должен что-то делать с self.collectionView
, который на самом деле не ссылается на мой collectionView
при вызове из другого класса, но я понятия не имею, как решить эту проблему. Не могли бы вы указать мне правильное направление?
EDIT: Вот как я вызываю свой метод из другого класса.
ExerciseViewController *vc;
[vc next];
Метод вызывается нормально, потому что NSLog работает, просто остальная часть кода не выполняется должным образом.
EDIT 2: я изменил код на
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
ExerciseViewController *controller = [mainStoryboard instantiateViewControllerWithIdentifier: @"id"];
[controller next];
Однако пока работает только NSLog. есть идеи?
ExerciseViewController *vc = [[ExerciseViewController alloc] init];
19.01.2016next
до того, как он добавил alloc/init...? 20.01.2016