Как я могу добавить splitview для моего приложения на основе просмотра в ipad Coding - PullRequest
1 голос
/ 22 декабря 2011

Я запустил свое приложение для iPad, используя приложение View-Based. в первых двух видах я добавил таблицы. Теперь, как третье представление, я хочу добавить splitView к представлению, для этой цели я добавил контроллер splitview в мой xib-файл. Как я могу написать часть программирования. пожалуйста, используйте полные ссылки или исходные коды.

I am using view based class like as follows:
- (void)viewDidLoad
{
    [super viewDidLoad];

}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return YES;
}

где я могу реализовать код? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 22 декабря 2011

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

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

Получить ссылку на ваше приложение делегата

MainAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

Выделите и инициализируйте свой контроллер splitview, поэтому для моего примера у меня есть контроллер списка разделов слева, а контроллер подробностей разделов справа:

SectionListViewController *sectionListVC = [[SectionListViewController alloc] init];
SectionViewController *sectionVC = [[SectionViewController alloc] init];

UISplitViewController *splitVC = [[UISplitViewController alloc] init];
splitVC.viewControllers = [NSArray arrayWithObjects:sectionListVC, sectionVC, nil];

appDelegate.window.rootViewController = splitVC;

[sectionListVC release];
[sectionVC release];
[splitVC release];
1 голос
/ 22 декабря 2011

SplitViewController должен быть RootViewController. Из Apple Docs:

"Контроллер разделенного представления всегда должен быть корнем любого интерфейса, который вы создаете. Другими словами, вы всегда должны устанавливать представление из объекта aUISplitViewController в качестве корневого представления окна вашего приложения. Панели интерфейса разделения представления могут затем содержат контроллеры навигации, контроллеры панели вкладок или любой другой тип контроллера представления, который необходим для реализации вашего интерфейса. "

Таким образом, вы не можете делать то, что хотите, без написания собственных представлений контейнера (в iOS5) вместо использования Apple SplitViewController.

1 голос
/ 22 декабря 2011

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

введите приведенный ниже код в главный контроллер реализация кода, как: на странице .h

 UISplitViewController *splitViewController;
@property (nonatomic, retain) IBOutlet LeftViewController *left;
@property (nonatomic, retain) IBOutlet DetailViewController *right;

дюйм. М стр.

   // Do any additional setup after loading the view from its nib.
left = [[LeftViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *leftNav = [[UINavigationController alloc] initWithRootViewController:left];
right = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
UINavigationController *rightNav = [[UINavigationController alloc] initWithRootViewController:right];
left.detail = right;

splitViewController = [[UISplitViewController alloc] init];    
splitViewController.viewControllers = [NSArray arrayWithObjects:leftNav,rightNav, nil];
splitViewController.delegate = right;
self.view = splitViewController.view;

[left release];
[right release];

все методы запуска, написанные в viewDidLoad, а не в viewWillAppear

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