Как разработать NavigationController в Xcode 4.2 без использования раскадровки и и tableView? - PullRequest
2 голосов
/ 02 апреля 2012

Я изучаю XCode и работаю на разработчика IOS в качестве стажера. Я использую Xcode 4.2 и Lion OS. Моя целевая ОС будет версии ios 3+. Кто-то сказал мне, что использование раскадровки создает проблему для более старой версии. Поэтому я хочу развиваться без использования раскадровки для navigationController. Помогите мне, потому что все старые уроки не помогают вообще, потому что есть много несоответствий из-за изменений в версии xcode. Помогите мне, пожалуйста.

Ответы [ 3 ]

3 голосов
/ 02 апреля 2012

Для создания контроллера навигации выберите приложение Single View для шаблона вашего проекта.В AppDelegate.h создайте экземпляр UINavigationController.В файле AppDelegate.m сделайте следующее:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    navigationController = [[UINavigationController alloc] initWithRootViewController:(UIViewController*)viewController];
    [window addSubview:navigationController.view];
    [self.window makeKeyAndVisible];
    return YES;
}

Это даст базу в качестве контроллера навигации.Вы можете добавить другие взгляды на это, используя

[self.navigationController pushViewController:newViewController animated:YES];
0 голосов
/ 02 апреля 2012

Добавьте это в свой AppDelegate и поэкспериментируйте с ними.Посмотрите, что происходит, и вы узнаете.

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>{


}

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) UITabBarController *tabBarController;

@end
//*****************************************//

.m file

 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *viewController1 = [[Categories alloc] initWithNibName:@"Categories" bundle:nil];
    UIViewController *viewController2 = [[Coupons alloc] initWithNibName:@"Coupons" bundle:nil];
    UIViewController *viewController3 = [[Favourites alloc] initWithNibName:@"Favourites" bundle:nil];
    UIViewController *viewController4 = [[AroundMe alloc] initWithNibName:@"AroundMe" bundle:nil];

    viewController2.title = NSLocalizedString(@"Coupons", @"Coupons");
    viewController2.tabBarItem.image = [UIImage imageNamed:@"coupons.png"];
    viewController3.title = NSLocalizedString(@"Favourites", @"Favourites");
    viewController3.tabBarItem.image = [UIImage imageNamed:@"favourites.png"];


   // UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
    UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
    UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
    UINavigationController *navController3 = [[UINavigationController alloc] initWithRootViewController:viewController3];
    UINavigationController *navController4 = [[UINavigationController alloc] initWithRootViewController:viewController4];
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:navController1,navController2, navController3, navController4, nil];
    self.window.rootViewController = self.tabBarController;
0 голосов
/ 02 апреля 2012

При создании нового проекта

есть галочки для использования раскадровки, просто удалите ее. Затем двигайтесь вперед, как вы двигаетесь раньше. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...