Подтвердить что ты не робот

Создание программного обеспечения NavigationController (Swift)

Я пытаюсь повторить работу над своим программным обеспечением. (Без использования раскадровки)

Я почти закончил, за исключением того, что сделал контроллер навигации вручную.

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

В настоящее время у меня только 1 диспетчер представлений. И, конечно же, appDelegate

Контроллер навигации будет использоваться на всех страницах приложения.

Если кто-нибудь может помочь мне или отправить ссылку на какую-то соответствующую документацию для этого программно, мы будем очень благодарны.

EDIT:

Я забыл упомянуть об этом в Swift.

4b9b3361

Ответ 1

Swift 1, 2: приложение func (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) → Bool {self.window = UIWindow (frame: UIScreen.mainScreen(). Bounds) var nav1 = UINavigationController ( ) var mainView = ViewController (nibName: nil, bundle: nil)//ViewController = Имя вашего контроллера nav1.viewControllers = [mainView] self.window!.rootViewController = nav1 self.window?.makeKeyAndVisible()}

Свифт 3+: и Свифт 4+

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
   self.window = UIWindow(frame: UIScreen.main.bounds)
   let nav1 = UINavigationController()
   let mainView = ViewController(nibName: nil, bundle: nil) //ViewController = Name of your controller
   nav1.viewControllers = [mainView]
   self.window!.rootViewController = nav1
   self.window?.makeKeyAndVisible()
}

Ответ 2

Я бы рекомендовал запустить AppDelegate с помощью этого скелета:

1) используйте let, где бы вы ни были!

2) UINavigationController имеет свойство rootViewController.

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let viewController = ViewController(nibName: nil, bundle: nil) //ViewController = Name of your controller
    let navigationController = UINavigationController(rootViewController: viewController)

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window?.rootViewController = navigationController
    self.window?.makeKeyAndVisible()

    return true
}

Ответ 3

Попробуйте это. Это поможет вам использовать навигационный контроллер.

Программное создание UINavigationController в iOS

AppDelegate.h

    #import <UIKit/UIKit.h>
    #import "LoginViewController.h"

    @interface AppDelegate : UIResponder <UIApplicationDelegate>

    @property (strong, nonatomic) UIWindow *window;
    @property (strong,nonatomic) UINavigationController *navigationController;
    @property (strong,nonatomic) LoginViewController *loginVC;

    @end

AppDelegate.m

    #import "AppDelegate.h"
    #import "LoginViewController.h"

    @implementation AppDelegate

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

   self.loginVC = [[LoginViewController alloc]initWithNibName:nil bundle:nil];
   self.loginVC.title = @"Login Page";

   self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.loginVC];

   self.window.rootViewController = self.navigationController;
   [self.window makeKeyAndVisible];
  }

Затем, когда вы хотите нажать другой контроллер представления, просто используйте следующий код для перехода к другому контроллеру представления.

- (IBAction)pushMyProfileView:(id)sender
{
    self.myProfileVC = [[MyProfileViewController alloc]initWithNibName:nil bundle:nil];
    [appDelegate.navigationController pushViewController:self.myProfileVC animated:YES];
}

Ответ 4

 self.window = UIWindow(frame: UIScreen.main.bounds) 
 let storyboard = UIStoryboard(name: "Main", bundle: nil) 
 let storyboard_Secondary = UIStoryboard(name: "Secondary", bundle: nil) 
 var initialViewController = UIViewController() 

 let aUser = CommonMethods.loadCustomObject("\(Constants.kUserProfile)") as? User  
 if aUser?.respCode == 1 { 
    initialViewController = storyboard_Secondary.instantiateViewController(withIdentifier: "MainTabVC")
    UIApplication.shared.statusBarStyle = .lightContent
    let navigationController = UINavigationController(rootViewController: initialViewController)
    navigationController.isNavigationBarHidden = true
    self.window!.rootViewController = navigationController
    self.window!.makeKeyAndVisible() 
}