приложение для iPhone - добавление другого вида - PullRequest
1 голос
/ 09 июня 2009

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

Как добавить другой вид? Я добавлю его в конструктор интерфейса, а затем свяжу его с основным делегатом приложения, или он будет иметь свои собственные файлы .h и .m.

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

Мэнни, спасибо

Карл

Ответы [ 2 ]

5 голосов
/ 09 июня 2009

Окно приложение идеально подходит для вас. В вашем файле AppDelegate у вас должен быть такой раздел:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    //instantiate the venue view controller object
    YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]];

    // Configure and show the window
    [window addSubview:[yourViewController view]];
    [window makeKeyAndVisible];

}

Это часть кода, которая объявляет, размещает и добавляет ваш пользовательский вид в окно. У вас есть пара вариантов, как добавить второй вид. Вы можете добавить его вместо этого или добавить после этого с помощью контроллера навигации. Чтобы добавить контроллер навигации, измените вышеуказанный метод, чтобы он выглядел следующим образом:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

//instantiate the venue view controller object
YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]];
    UINavigationController *yourViewControllerWrapper = [[UINavigationController alloc] initWithRootViewController: yourViewController];



// Configure and show the window
[window addSubview:[yourViewControllerWrapper view]];
[window makeKeyAndVisible];

}

Там мы создаем ваш пользовательский вид, а затем оборачиваем его в контроллер навигации. Навигационный контроллер - это то, что добавляется в окно. Далее код для переключения на второй вид будет выглядеть следующим образом, при условии, что вы переключаете виды нажатием кнопки:

-(IBAction)switchViewController{
    MySecondViewController *secondViewController = [[MySecondViewController alloc] init];

    [self.navigationController pushViewController:secondViewController];
}

Конечно, вы должны заменить строку

MySecondViewController *secondViewController = [[MySecondViewController alloc] init];

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

Что касается создания файлов представлений, вы должны создать перо в Интерфейсном конструкторе для макета всего, а затем создать файлы .h и .m для самого кода ViewController.

1 голос
/ 16 октября 2010

Вы также можете отобразить новый кадр вместо нового вида. Иногда проще, так как вам не нужно передавать параметры - вы в одном классе:

CGRect frame = okresView.frame;
frame.origin.x = frame.size.width;
if ( [okresView superview] == nil )
{
[self.view addSubview:okresView];
}

okresView.frame = frame;
[okresDataTableView reloadData]; // przeładowanie tabeli na subwidoku

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.5];
frame.origin.x = 0;
okresView.frame = frame;
[UIView commitAnimations];

если вы хотите новое подпредставление, вы можете использовать несколько методов - просто загрузите несколько приложений из справки XCode и проверьте, как они это делают. Хороший пример в приложениях Elements и UICatalog, где вы перевернули представление и другие примеры.

// Создать и передать другой контроллер вида. UIViewController * myViewController = [[UIViewController alloc] init]; myViewController.title = @ "My First View"; myViewController.view.backgroundColor = [UIColor redColor];

// нажать на UIView. [self.navigationController pushViewController: myViewController animated: YES];

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