J'ai essayé de refaire le travail sur mon application par programme. (Sans l'utilisation de storyboards)
J'ai presque terminé, à part faire le contrôleur de navigation manuellement.
J'ai fait des recherches mais je ne trouve pas de documentation pour l'implémenter manuellement. (J'ai commencé à créer l'application en tant qu'application à vue unique)
Actuellement, je n'ai qu'un seul contrôleur de vue. Et bien sûr l'appDélégué
Le contrôleur de navigation sera utilisé dans toutes les pages de l’application.
Si quelqu'un pouvait m'aider ou envoyer un lien vers une documentation appropriée pour le faire par programme, ce serait grandement apprécié.
MODIFIER:
J'ai oublié de mentionner que c'est dans Swift.
Swift 1, 2:
func application(_ 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 = Name of your controller
nav1.viewControllers = [mainView]
self.window!.rootViewController = nav1
self.window?.makeKeyAndVisible()
}
Swift 4+: et Swift 5 +
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()
}
Je recommanderais de démarrer votre AppDelegate avec ce squelette:
1) utilisez let partout où vous le pouvez!
2) UINavigationController a la propriété 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
}
Essaye celui-là . Il vous guidera sur l'utilisation du contrôleur de navigation.
Création par programme de UINavigationController dans 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];
}
Ensuite, lorsque vous voulez pousser l’autre contrôleur de vue, utilisez simplement le code suivant pour passer à un autre contrôleur de vue.
- (IBAction)pushMyProfileView:(id)sender
{
self.myProfileVC = [[MyProfileViewController alloc]initWithNibName:nil bundle:nil];
[appDelegate.navigationController pushViewController:self.myProfileVC animated:YES];
}