Как изменить основной вид это приложение на основе навигации! - PullRequest
1 голос
/ 04 июля 2011

Я новичок в программировании, и моя проблема в этом.

У меня есть приложение на основе навигации, которое отображает данные из базы данных SQLite в таблице при запуске приложения.Я хотел бы иметь другой основной вид и иметь таблицу с отображением данных, когда пользователь нажимает кнопку в меню вкладок.

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 04 июля 2011
  1. Создайте класс, который нужно отобразить. Допустим, вы создали класс с именем LoginView.

  2. При создании приложения на основе навигации класс AppDelegate содержит следующий код:

    // Add the navigation controller's view to the window and display.
    [window addSubview:navigationController.view];
    [window makeKeyAndVisible];
    
  3. Добавьте следующие строки чуть выше кода, упомянутого в шаге 2:

    LoginView *logView = [[LoginView alloc] initWithNibName:@"LoginView" bundle:nil];
    [self.navigationController pushViewController:(UIViewController *)logView animated:YES]; 
    
  4. Добавьте следующую или аналогичную функцию в класс AppDelegate. Это скроет представление LoginView и отобразит класс контроллера rootView.

    -(void) LoginSuccess
    {
        // Add the navigation controller's view to the window and display.
    
        [self.navigationController popViewControllerAnimated:YES];
    
        RootViewController *rootView = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
        [self.navigationController pushViewController:(UIViewController *)rootView animated:YES];
    
        [window addSubview:navigationController.view];
        [window makeKeyAndVisible];
    }
    
  5. Добавьте функцию в класс LoginView, аналогичную функции, упомянутой ниже. Вызовите функцию, указанную в шаге 4, как показано:

    -(IBAction) OpenNavigation
    {
        TestNavgAppDelegate *pApp = [[UIApplication sharedApplication] delegate];
        [pApp LoginSuccess];
    }
    
  6. Добавьте следующий код в метод RootView контроллеров viewDidLoad, чтобы скрыть кнопку возврата, если хотите:

    [super viewDidLoad];
    
    self.navigationItem.backBarButtonItem = NULL;
    self.navigationItem.hidesBackButton = YES;
    

Всего наилучшего.

1 голос
/ 04 июля 2011

Все, что вам нужно, это переключиться на приложение на основе вкладок из приложения на основе Naviagtion.

ШАГ 1] Откройте MainWindow.xib и замените навигационный контроллер на UITabbarController ШАГ 2] В приложении делегат замените переменную

UINavigationController *navController;

с

UITabBarController* tabBarController;

1009 * то есть *

@interface ViewTestAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UINavigationController *navController;
}

@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@property (nonatomic, retain) IBOutlet UIWindow *window;

с

@interface ViewTestAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UITabBarController* tabBarController;
}

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) IBOutlet UIWindow *window;

и соответственно обновить то же самое в свойстве, что и в файле .m

заменить код

[self.window addSubview:navController.view];

с

  [self.window addSubview:tabBarController.view];

в - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
способ.

Все, что мы сделали, заменили контроллер навигации на контроллер панели вкладок. enter image description here

enter image description here

После подключения соответствующих выходов все, что вам нужно сделать, - это назначить нужный контроллер представления (вы можете повторно использовать представление, которое вы использовали ранее для отображения данных из базы данных Sqlite) в качестве выбранного контроллера представления для TabbarController, который будет первым представлением загружается с таблицей.

все это будет выглядеть следующим образом. enter image description here

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