iOS — панель навигации

Использование панели навигации

Панель навигации содержит кнопки навигации контроллера навигации, который представляет собой стек контроллеров представления, которые можно нажимать и открывать. Заголовок на панели навигации — это заголовок текущего контроллера представления.

Образец кода и шаги

Шаг 1 — Создайте приложение на основе представления.

Шаг 2 — Теперь выберите App Delegate.h и добавьте свойство для контроллера навигации следующим образом:

#import <UIKit/UIKit.h>

@class ViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) ViewController *viewController;

@property (strong, nonatomic) UINavigationController *navController;

@end

Шаг 3. Теперь обновите метод application: didFinishLaunchingWithOptions: в файле AppDelegate.m , чтобы выделить контроллер навигации и сделать его корневым контроллером представления окна следующим образом:

- (BOOL)application:(UIApplication *)application 
   didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   self.window = [[UIWindow alloc] initWithFrame:
   [[UIScreen mainScreen] bounds]];
   
   // Override point for customization after application launch.
   self.viewController = [[ViewController alloc] 
   initWithNibName:@"ViewController" bundle:nil];
   
   //Navigation controller init with ViewController as root
   UINavigationController *navController = [[UINavigationController alloc]
   initWithRootViewController:self.viewController];
   self.window.rootViewController = navController;
   [self.window makeKeyAndVisible];
   return YES;
}

Шаг 4 — Добавьте новый файл класса TempViewController , выбрав ФайлСоздатьФайл … → Цель C Class, а затем назовите класс как TempViewController с подклассом UIViewController.

Шаг 5 — Добавьте UIButton navButon в ViewController.h следующим образом —

// ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
   UIButton *navButton;
}
@end

Шаг 6 — Добавьте метод addNavigationBarItem и вызовите метод в viewDidLoad .

Шаг 7 — Создайте метод действия элемента навигации.

Шаг 8 — Нам также нужно создать еще один метод, чтобы подтолкнуть другой контроллер представления TempViewController.

Шаг 9 — Обновленный ViewController.m выглядит следующим образом —

// ViewController.m
#import "ViewController.h"
#import "TempViewController.h"
@interface ViewController ()

@end
@implementation ViewController

- (void)viewDidLoad {
   [super viewDidLoad];
   [self addNavigationBarButton];
   //Do any additional setup after loading the view, typically from a nib
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   // Dispose of any resources that can be recreated.
}

-(IBAction)pushNewView:(id)sender {
   TempViewController *tempVC =[[TempViewController alloc]
   initWithNibName:@"TempViewController" bundle:nil];
   [self.navigationController pushViewController:tempVC animated:YES];
}

-(IBAction)myButtonClicked:(id)sender {
   // toggle hidden state for navButton
   [navButton setHidden:!nav.hidden];
}

-(void)addNavigationBarButton {
   UIBarButtonItem *myNavBtn = [[UIBarButtonItem alloc] initWithTitle:
   @"MyButton" style:UIBarButtonItemStyleBordered target:
   self action:@selector(myButtonClicked:)];
   
   [self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];
   [self.navigationItem setRightBarButtonItem:myNavBtn];
   
   // create a navigation push button that is initially hidden
   navButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
   [navButton setFrame:CGRectMake(60, 50, 200, 40)];
   [navButton setTitle:@"Push Navigation" forState:UIControlStateNormal];
   [navButton addTarget:self action:@selector(pushNewView:) 
   forControlEvents:UIControlEventTouchUpInside];
   [self.view addSubview:navButton];
   [navButton setHidden:YES];
}
@end

Шаг 10 — Когда мы запустим приложение, мы получим следующий результат —

Учебник iOS

Шаг 11 — При нажатии кнопки навигации MyButton видимость кнопки навигации переключается.

Шаг 12 — При нажатии кнопки навигации нажимается другой контроллер представления, как показано ниже.

Учебник iOS

Выберите поля, которые будут показаны. Прочие будут скрыты. Перктаскивайте мышкой для изменения порядка полей.
  • Изображение
  • SKU
  • Рейтинг
  • Цена
  • Запасы
  • Доступность
  • В корзину
  • Описание
  • Содержимое
  • Вес
  • Размеры
  • Дополнительная информация
  • Атрибуты
  • Custom attributes
  • Настраиваемые поля
Сравнить
Список желаний 0
Открыть страницу желаний Продолжить покупки