В своем вопросе вы не указали, как вы создали свои объекты (панель инструментов и кнопки на нем), вы создаете их из XCode путем перетаскивания или из чистого кода, поэтому я постараюсь указать на общиепроблемы для обоих случаев.
Во-первых, я предполагаю, что вы используете XCode и перетаскиваете компоненты, которые вам нравятся.В этом случае вам нужно создать в .h файле Outlet, который будет связан с кнопкой на панели следующим образом:
@interface yourViewController : UIViewController
{
UIBarButtonItem *barButton;
}
@property (nonatomic, retain) IBOutlet UIBarButtonItem *barButton;
- (void) barButtonPress;
Обратите внимание, что я добавил функцию, которая будет обрабатывать нажатие кнопки панели.Теперь вам нужно связать этот выход с элементом кнопки панели, просто в Xcode в Connection Inspector , где написано New Referencing Outlet , перетащите в поле «Владелец файла» (желтый куб).
Теперь в viewDidLoad
добавьте следующее:
[barButton setTarget:self];
[barButton setAction:@selector(barButtonPress)];
Этот код свяжет вашу кнопку панели с функцией, которую вы хотите вызвать, когда вы нажимаете ее.Теперь для представления, которое вам нравится для просмотра Modal, я предполагаю, что вы уже #import
это также в файле .h, давайте назовем его MyViewModal.
Внутри функции, которая будет вызываться при нажатии на панелькнопка:
- (void) barButtonPress
{
MyViewModal *myViewModal = [[MyViewModal alloc] initWithNibName:@"MyViewModal" bundle:nil];
[self presentModalViewController:myViewModal animated:YES];
}
Вот и все, это будет отображаться в модальном виде.Имейте в виду, что выделение нового представления выполняется в соответствии с вашими потребностями, здесь я сделал простейший случай только для иллюстрации.
ОБНОВЛЕНИЕ: Если не используется Xcode
ЕслиВы не используете Xcode, тогда у вас должна быть уже определенная панель инструментов, скажем, она называется myToolBar.Чтобы добавить кнопки на панель инструментов, мы используем способ myToolbar.items
, поэтому нам нужно подготовить кнопки с их целями, прежде чем добавлять их.Вот рабочий процесс:
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(barButtonPress) forControlEvents:UIControlEventAllEvents]; //same function as above
UIBarButtonItem *btn = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];
myTool.items = [NSArray arrayWithObjects:btn, nil];
Это должно сделать это для вас.