Возможно ли использовать свойство self.navigationitem в статическом методе в iphone? - PullRequest
1 голос
/ 24 июля 2010

В моем приложении, в котором есть много классов viewcontroller, а также классов tableviewcontroller во всех классах, я хочу показать navigationcontroller, у которого есть

//creation of toolbar
UIToolbar *tool = [UIToolbar new];
tool.frame = CGRectMake(0, 0, 320, 42);
//create setting button
UIButton *bttn=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 30)];
[bttn addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *back=[[UIBarButtonItem alloc]initWithCustomView:bttn];

//Space
UIBarButtonItem *spbtn = [[UIBarButtonItem alloc] init];

spbtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
         UIBarButtonSystemItemFlexibleSpace   target:nil action:nil];

//Show Logo
UIButton *bttn1;
bttn1= [UIButton buttonWithType:UIButtonTypeCustom];
bttn1.frame = CGRectMake(20, 0, 230, 30);
bttn1.backgroundColor = [UIColor clearColor];
[bttn1 addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
UIImage *imgss =[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"pic" ofType:@"png"]];
UIImage *strechableImage1 = [imgss stretchableImageWithLeftCapWidth:12 topCapHeight:0];
[bttn1 setBackgroundImage:strechableImage1 forState:UIControlStateNormal];
UIBarButtonItem *logo;
logo=[[UIBarButtonItem alloc]initWithCustomView:bttn1];

//assign toolbar into navigation bar
NSArray *items = [NSArray arrayWithObjects:back,logo,spbtn,nil];
[tool setItems:items animated:YES];
tool.barStyle =UIBarStyleBlackOpaque;
tool.backgroundColor = [UIColor clearColor];
self.navigationItem.leftBarButtonItem =  [[UIBarButtonItem alloc] initWithCustomView:tool];

. Я хочу показывать панель навигации в верхней части каждого класса.Для этого мне нужно написать этот код в каждом классе, но я хочу удалить повторение. Я определяю класс, у которого есть статические методы. Я пытаюсь выполнить это действие в этом методе, но генерирует ошибку, что я могу сделать, чтобы дать некоторое руководство.

Ответы [ 3 ]

0 голосов
/ 26 июля 2010

Я нахожу решение очень простым благодаря концепции наследования создать базовый класс, который показывает navigatedtoolbar, а затем я использую базовый класс в качестве суперкласса файла

0 голосов
/ 29 июля 2010

UINavigationController уже имеет панель инструментов. Если вы должны включить это, вы можете просто предоставить кнопки, которые должны быть на панели инструментов из viewControllers. Почтовое приложение Apple использует эту концепцию. Преимущество этого в том, что вы не видите, как панель инструментов покидает экран во время анимации стека навигации, из-за чего создается впечатление, что она сидит поверх всего, а кнопки на панели инструментов меняются в соответствии с UIViewController, который в данный момент находится на экране.

0 голосов
/ 24 июля 2010

да, вы можете использовать

Можно ли использовать self.navigationbar.

...