я использовал UIActionSheet в peoplePickerNavigationController и попытался представитьModalViewController: в UIActionSheetDelegate, который не удался - PullRequest
0 голосов
/ 22 июля 2011

ситуация выглядит так:

есть кнопка в UIView A, которая после нажатия приведет нас к средству выбора контактов:

        ABPeoplePickerNavigationController *picker=[[ABPeoplePickerNavigationController alloc]init];
        picker.peoplePickerDelegate=self;
        [self presentModalViewController:picker animated:YES];
        [picker release];

и я использовал UIActionSheet в средстве выбора, чтобы перейти к различным представлениям в соответствии с выбором пользователя:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
    UIActionSheet *actionSheet=[[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:nil otherButtonTitles:@"ViewB",@"ViewC",@"ViewD",@"ViewE",nil];
    [actionSheet showInView:picker.view];
    [actionSheet release];
        return NO;
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    if(buttonIndex==0)
        [self gotoViewB];
    else if(buttonIndex==1)
        [self gotoViewC];
    else if(buttonIndex==2)
        [self gotoViewD];
    else if(buttonIndex==3)
        [self gotoViewE];
}

-(void)gotoViewB{
    ViewB *bClass=[[ViewB alloc]init];
    [self presentModalViewController:bClass animated:YES];
    [bClass release];
}

но после того, как я выбрал строку в представлении выбора контактов, ничего не произошло, так как представление выбора не исчезло, а ViewB не отображался. я не знаю, что здесь не так, пожалуйста, помогите мне: <</p>

1 Ответ

0 голосов
/ 22 июля 2011

Сначала нужно добавить контроллер навигации, а затем позвонить "presentModelViewController"

yourModelController =[[Yourmodelcontroller alloc]init];
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController: yourModelController];
self.hidesBottomBarWhenPushed = YES;
[[self navigationController] presentModalViewController:controller animated:YES];
[controller release];

Надеюсь, это поможет вам.

...