2016-06-21 3 views
0

У меня есть UIViewController, в котором у меня есть UITableView.Как вызвать UIViewController из подкласса UIView?

В ячейке UItableView Я уже добавил UICollectionView.

в -

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 

Я вызываю метод главного UIViewController.

UIViewController *view = [[UIViewController alloc] init]; 
[view my_method]; 

в общем виде.

-(void)my_method { 
    AnotherName *view_my=[[AnotherName alloc]initWithNibName:@"AnotherName" bundle:nil]; 
     [self.navigationController pushViewController:view_my animated:NO]; 
} 

Viewdidload метод вызова, но view не отображается.

+0

прочитал о добавлении childViewControllers. вам нужно понять объектно-ориентированные понятия здесь. просто создание нового экземпляра представления не влияет на текущую иерархию – Shubhank

+0

см. код метода View_my? –

+0

Когда вы выбираете элемент в представлении коллекции, можете ли вы указать, что вы хотите, чтобы приложение выполняло. Таким образом, я могу показать вам, как это делается. Потому что, несмотря на то, что вы делаете это, не ясно, что вы опубликовали. – pnizzle

ответ

0

я получил решение ..

AnotherName *view_my = [[AnotherName alloc]initWithNibName:@"AnotherName" bundle:nil]; 
self.window.rootViewController = view_my; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 

Spacial благодаря @The Mech System .. Для того, чтобы помочь мне найти решение .. теперь работает нормально.

+0

Я рад, что это помогает. Не могли бы вы пометить мой ответ, если он вам помог. Спасибо. –

1

Это потому, что вы инициализируете, вызывая [[UIViewController alloc] init]. Это всегда возвращает пустой вид.

Вы должны вместо этого вызвать эту

  • Если вы используете раскадровка дать контроллер представления раскадровки идентификатор и называем это

MainViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"storyboard id"];

  • При использовании интерфейса строитель, назвать это

MainViewController *controller = [[MainViewController alloc] initWithNibName:@"Nib File Name" bundle:nil];

+0

Я пробовал это, но он не предназначен для просмотра. Я поставил точки останова, вызывается метод viewdidload, но представление не отображается. –

+0

Почему вы назвали его UIViewController? Вы не можете назвать его UIViewController, поскольку он будет называть UIViewController по умолчанию Apple, а не вашим пользовательским UIViewController. –

+0

Я хочу вызвать другой контроллер вида из класса uiview. –

Смежные вопросы