Как использовать раскадровки на iPad, с контроллером разделения экрана (iOS5.0)? - PullRequest
0 голосов
/ 20 октября 2011

Не могу найти подходящий пример, как мне представить новый вид в подробном виде, когда пользователь выбирает что-то в главном виде?

Ответы [ 6 ]

0 голосов
/ 14 декабря 2011

Используя Xcode 4, создайте шаблон проекта приложения master-detail.Перейдите к файлу раскадровки, разверните главное представление и добавьте еще одну статическую ячейку, выбрав статическую ячейку по умолчанию с именем «Detail» и нажав Cmd + D. Назовите новую статическую ячейку как «Hello» (или как угодно). Теперь в вашемФайл MasterViewController.m, реализуйте это:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.detailViewController setDetailItem:[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text]];
}

В этом примере для метки по умолчанию в detailViewController будет присвоено имя выбранной ячейки masterViewController.Обратите внимание, что setDetailItem: метод принимает параметр id, и в этом примере вы передаете NSString *.

0 голосов
/ 10 ноября 2011
  1. MasterViewController.h


    @property (assign,nonatomic) id delegate;

  1. MasterViewController.m


    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (delegate!=nil) {
            // get your data here   { your code here } 
            [delegate sendDataToView:data];
        }
    }

  1. в вашем файле AppDelegate.m.


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        // Override point for customization after application launch.
        UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
        UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
        splitViewController.delegate = (id)navigationController.topViewController;


        // set the view controller here
        UINavigationController *masterNavController = [splitViewController.viewControllers objectAtIndex:0];
        MasterViewController *masterViewController = [masterNavController.viewControllers objectAtIndex:0];
        UINavigationController *detailNavController = [splitViewController.viewControllers objectAtIndex:1];
        DetailViewController *detailViewController = [detailNavController.viewControllers objectAtIndex:0];
        masterViewController.delegate = detailViewController;

        return YES;
    }

0 голосов
/ 10 ноября 2011
  1. в вашем файле DetailViewController.h.


    @interface DetailViewController : UIViewController 

  1. в вашем файле DetailViewController.m.


    - (void)sendDataToView:(MyData *)data
    {
        // your code how to display data.
    }

0 голосов
/ 10 ноября 2011

Вы можете сделать это, как показано ниже.

  1. создать новый протокол в качестве делегата MyDataDelegate.h.

@protocol MyDataDelegate
- (void)sendDataToView:(MyData *)data;
@end
0 голосов
/ 04 ноября 2011

Книга Маттиса Холлемана "ios5 by tutorials" включает в себя как использовать раскадровки на ipadно эту книгу нужно купить, бот бесплатно.Я просто хотел найти пример кода, но не смог.

0 голосов
/ 20 октября 2011

Ничего не нашел тоже. Реализуемое решение - просто создать раскадровки для каждого представления (или, по крайней мере, для сложных) и добавить в класс appDelegate. Я на самом деле удивлен, что раскадровка ide не позволяет добавлять дочерние представления ... Может быть, в следующем обновлении, если еще нет.

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