2013-04-21 2 views
-1

я добавил панель навигации с точки зрения использования ниже код:UINavigation Бар в worng положении

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"Load Colors"]; 
    [navBar pushNavigationItem:navItem animated:NO]; 
    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" 
                    style:UIBarButtonItemStyleBordered 
                    target:self 
                    action:@selector(toggleEdit:)]; 
    navItem.rightBarButtonItem = editButton; 
    [self.view addSubview:navBar]; 

    CGRect tableFrame = self.tableView.frame; 
    tableFrame.origin.y = tableFrame.origin.y +45; 
    self.tableView.frame = tableFrame; 
} 

, как вы можете видеть на картинке ниже его приходит на мой Tableview .. как я могу это исправить?

enter image description here

ответ

0

Вы можете установить Tableview origin.y до 45, так что панель навигации не придет над TableView

+0

я попытался это: CGRect tableFrame = self.tableView.frame; tableFrame.origin.y = tableFrame.origin.y +45; self.tableView.frame = tableFrame; но его не работает .. – OshriALM

+0

не могли бы вы рассказать мне, какова рамка таблицы, которую вы установили? – Ashok

+0

i did not set tableView frame .. Я отредактировал мое сообщение, там вы можете увидеть мой код. – OshriALM

0
CGRect navframe = [[self.navigationController navigationBar] frame]; 

Вычислить высоту панели навигации с помощью «» navframe.size.height и установите TableView orgin 'y' для этого значения высоты.

0

Я не знаю, подходит ли это в вашем случае, но лучший способ добавить NavigationBar в ViewController - включить ViewController в NavigationViewController. В этом случае вам также не нужно беспокоиться о правильном преобразовании в случае поворота устройства.

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

+0

Я не могу использовать UINavigationController .. Мне просто нужна панель навигации, поэтому я могу добавить бутон для редактирования и возврата. – OshriALM

+0

Ну, я не знаю, что может помешать вам использовать его :) Аналогичный случай описан в [Учебнике Apple] (http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/ SecondiOSAppTutorial/CreatingAddView/CreatingAddView.html # // apple_ref/DOC/UID/TP40011318-CH6-SW5). Единственная цель, с которой они используют навигационный контроллер, это добавить панель навигации с одной кнопкой («Готово»). – FreeNickname

+0

Поскольку в моем корневом представлении (который имеет NavigationController) у меня есть кнопка навигации, когда я нажимаю на кнопку свой FLIP на другой вид. Я пытался сделать его navigationController, но я всегда получаю исключения. – OshriALM

0

В файле xib вы можете указать место для панели навигации. Ниже приведено изображение ниже. enter image description here Затем вы можете добавить свой рабочий стол.

UINavigationBar имеет размер 320x44 для обычного дисплея и 640x88 для iPhone Retinadisplay.

И использовать этот код в viewWillAppear

//for custom navigationbar 
    UINavigationBar *navBarName = [[self navigationController] navigationBar]; 
    UIImage *backgroundImg = [UIImage imageNamed:@"NavBar.png"];// ur navigationbar image of above dimension 
    [navBarName setBackgroundImage:backgroundImg forBarMetrics:UIBarMetricsDefault]; 

    //for right edit button 
    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:@selector(toggleEdit:)];   
    self.navigationItem.rightBarButtonItem = editButton; 
Смежные вопросы