Изменение представлений в UIViewController

#iphone #ios #uiview #uiviewcontroller

#iPhone #iOS #uiview #uiviewcontroller

Вопрос:

У меня есть a UIViewController UIToolBar вверху с 3 кнопками и a UIView , когда я касаюсь этих кнопок, я должен изменить представления, которые есть у контроллера. Что я могу сделать, чтобы получить свой porpuse? Заранее спасибо.

Ответ №1:

Вероятно, вы хотите использовать что-то вроде a UINavigationController для управления стеком представлений, а затем заставить ваши кнопки вызывать один из этих методов для Touch Up Inside действия:

  • pushViewController:animated:
  • popViewControllerAnimated:
  • popToRootViewControllerAnimated:
  • popToViewController:animated:

Вот хороший uinavigationcontroller-учебник для изучения.

Ответ №2:

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

В файле .h текущего ViewController:

 #import "OtherViewController.h"

@interface MyViewController : UIViewController
{
    OtherViewController *otherViewController;
}

@property(nonatomic, retain)IBOutlet OtherViewController *otherViewController;
  

Затем в файле .m текущего ViewController вам нужно добавить следующее для каждого IBAction (подправить внутри).

В верхней части файла .m добавьте:

 @synthesize otherViewController;
  

Затем создайте IBAction и введите следующую строку кода для отображения другого представления:

 [self presentModalViewController:otherViewController animated:NO];
  

В вашем otherViewController вы можете отклонить себя, используя:

 [self dismissModalViewControllerAnimated:NO];
  

ПРИМЕЧАНИЕ: Еще одна вещь, которую вам нужно будет сделать, это создать UIViewController в Interface Builder для каждого из представлений, которые вы планируете отображать. Затем вам нужно зайти в инспектор идентификации и установить класс как OtherViewController . Затем вам нужно связать IBOutlet с OtherViewController as normal.

Существует видеоурок YouTube, который охватывает все, что я упомянул выше. Это хороший простой способ начать работу.

Комментарии:

1. спасибо за сообщение, я думаю, мне следует быть немного более конкретным. я не хочу использовать какой-либо другой uiviewcontroller. мне просто нужен один uiviewcontroller, в котором есть панель инструментов с тремя кнопками внутри нее и uiview под панелью инструментов, этот uiview будет содержать представление в зависимости от того, какая кнопка была нажата. Итак, uiview будет содержать 3 разных uiviews в разные моменты.

2. Что я сделал, так это создал 3 разных UIView, которые содержат свои собственные элементы управления. затем uiviewcontroller с панелью инструментов properties и viewcontainer. В методе viewDidLoad() я создал uiviewxxxx, а затем maid viewcontroller = uiviewxxxx; затем создал экземпляр первого представления и создал viewcontroller = firstview; чтобы показать его в uiviewcontroller. что я могу сделать с помощью метода касания кнопки для переключения между 3 представлениями? заранее спасибо.

Ответ №3:

UiViewController свойство view — это базовое представление, которое вы видите. Он может быть установлен (заменен другим). ПОЭТОМУ замените объект view ViewController другим созданным вами представлением.

 UIView * customView = [[[UIView alloc] initWIthFrame:viewFrame] autorelease];
[self setView:customView];
  

Здесь self представляет текущее viewController значение.