#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
значение.