перейти к другому виду из подробного вида в splitview, но РАЗМЕР этого нового вида занимает весь экран - PullRequest
1 голос
/ 07 апреля 2011

У меня есть splitview, и он содержит rootviewcontroller (подкласс uitableviewcontroller) и detailview (подкласс viewcontroller).Теперь у меня есть такой код в rootview (подкласс tableviewcontroller).

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

if (delegate != nil) {
    [delegate viewchange];
}

}

и detailviewcontroller (подкласс viewcontroller справа).

-(void)viewchange{

nextviewcontroller * nextView = [[nextviewcontroller alloc] initWithNibName: @ "nextviewcontroller" bundle: nil];

[nextView.view setFrame:self.view.bounds];
[nextView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:nextView animated:YES];

[nextView release];

}

, и навигация происходит успешно, выбирая строку в rootview, но появляется следующее представлениена весь экран, который будет скрывать вид контроллера rootview (tableview). Итак, КАК я могу показать rootview на левой стороне и навигацию только на правой стороне в пределах размера detailview?

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

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

Я вижу, что вы используете "presentModalViewController" для представления в представлении ... в соответствии с документацией, указанной здесь, нажмите здесь , там написано, что

вид контроллера модального вида всегда представлен в полноэкранном режиме

так что, я думаю, именно поэтому ваш вид отображается в полноэкранном режиме. Если вы хотите использовать контроллер представления Modal, он говорит, что для Ipad вы можете изменить тип презентации, используя свойство modalPresentationStyle, доступ к которому можно получить по этой ссылке modalPresentationStyle .

Посмотрите, поможет ли это вам.

Кроме того, если вы нашли ответ на свой вопрос, пожалуйста, опубликуйте его, чтобы он помог другим, кто сталкивался с вашим вопросом.

0 голосов
/ 30 августа 2011

У меня такая же проблема

Устранена проблема с полноэкранным режимом, но рамка этого нового вида находится посередине. так что я постараюсь позже

вы можете опубликовать свой код? я пытаюсь установить кадр, но ничего не происходит:

    -(void)showFlipView
{
    UIViewController *controller = [[UIViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
    //controller.delegate = self;
    controller.modalPresentationStyle = UIModalPresentationCurrentContext;
    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [controller.view setFrame:self.view.bounds];
    /*controller.view.frame = CGRectMake(300.0, 
                                       0.0, 
                                       self.readerDetailView.frame.size.width, 
                                       self.readerDetailView.frame.size.height);
    */
    [self presentModalViewController:controller animated:YES];

    [controller release];
}

РЕДАКТИРОВАТЬ: Решено! Я должен установить кадр ПОСЛЕ анимации:

    UIViewController *controller = [[UIViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
//controller.delegate = self;
controller.modalPresentationStyle = UIModalPresentationCurrentContext;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
controller.view.frame = CGRectMake(self.readerDetailView.frame.origin.x, 
                                   self.readerDetailView.frame.origin.y, 
                                   self.readerDetailView.frame.size.width, 
                                   self.readerDetailView.frame.size.height);
[controller release];
...