Добавить представление UIViewControllers в качестве подпредставления другого представления UIViewController.

У меня есть UiView под названием TestView, который я добавил в качестве подвида моего NumberViewController.

При запуске моего приложения My rootViewController — это PaperViewController, у него есть несколько UIButtons, которые я добавил через xib. Теперь я хотел добавить представление NumberViewController в качестве подвида PaperViewController, поэтому я сделал это

 NumberViewController = [[NumberViewController alloc] initWithNibName:@"NumberViewController" bundle:nil];
    NumberViewController.delegate = self;
    [self.view addSubview:NumberViewController.view];
    NumberViewController.view.backgroundColor = [UIColor clearColor];
    NumberViewController.view.hidden = YES;

Теперь это скрыто, потому что я покажу его при нажатии какой-либо кнопки, а затем покажу представление NumberViewContrller. Все это работает нормально.

Но предположим, что я добавил несколько кнопок в PaperViewController с помощью кода, а затем отобразил представление NumberViewController, тогда оба представления перекрываются.

Я не понимаю, в чем проблема, и какую ошибку я делаю. Итак, друзья, помогите мне

С уважением Ранджит.


person Ranjit    schedule 08.04.2013    source источник
comment
Почему вы добавляете второе представление контроллера представления в качестве подпредставления вместо представления второго контроллера представления?   -  person jcesarmobile    schedule 08.04.2013
comment
@jcesar bcoz, я хочу показать это сразу, а не как modalView.   -  person Ranjit    schedule 08.04.2013
comment
Не могли бы вы опубликовать свой код, как программно добавить кнопку и отобразить вид?   -  person Janak Nirmal    schedule 08.04.2013
comment
Извините, ваш вопрос мне не ясен, чего именно вы хотите добиться?   -  person iEngineer    schedule 08.04.2013
comment
@Jennis, код для программного добавления кнопки является стандартным.   -  person Ranjit    schedule 08.04.2013
comment
@iDeveloper, я хочу, чтобы оба представления не перекрывались, а представление NumberViewController должно быть выше представления PaperViewController.   -  person Ranjit    schedule 08.04.2013
comment
Хорошо, вы пытались вывести NumberViewController на передний план? что-то вроде [self.View bringSubviewToFront:numberViewControllerView];   -  person iEngineer    schedule 08.04.2013
comment
Но почему вы используете 2 контроллера представления? вы можете использовать только один, с текущим представлением и представлением, которое у вас есть на numberViewController, а затем скрыть/показать и вывести наверх   -  person jcesarmobile    schedule 08.04.2013
comment
@iDeveloper, не работает.   -  person Ranjit    schedule 08.04.2013
comment
@Ranjit, можете ли вы предоставить какой-нибудь код, в котором вы пытаетесь сделать все это?   -  person iEngineer    schedule 08.04.2013
comment
@iDeveloper, все, что я показал, я думаю, вы должны попробовать это и проверить   -  person Ranjit    schedule 08.04.2013
comment
@iDeveloper, и все, теперь это работает,   -  person Ranjit    schedule 08.04.2013
comment
Хм, хорошо. также запишите проблему, чтобы любой другой человек, столкнувшийся с такой же проблемой, мог получить помощь из вашего опыта.   -  person iEngineer    schedule 08.04.2013
comment
Хорошо, сделаю в ближайшее время   -  person Ranjit    schedule 08.04.2013


Ответы (1)


Добавьте UIView в заголовок:

@property (weak, nonatomic) IBOutlet UIView *addChildView;

В методе - (void)viewDidLoad сделайте следующее:

  ChildViewController *nonSystemsController = [[ChildViewController alloc] initWithNibName:@"ChildViewController" bundle:nil];

    nonSystemsController.view.frame = self.addChildView.bounds;    
    [self.addChildView addSubview:nonSystemsController.view];

    [nonSystemsController didMoveToParentViewController:self];
[self addChildViewController:nonSystemsController];
person ravi sendhav    schedule 02.12.2014