Chciałbym stworzyć tego rodzaju menu, oczywiście z innymi przyciskami menu. Czy istnieje jakiś domyślny kontroler widoku, który go reprezentuje, czy też muszę uzyskać obrazy i utworzyć je samodzielnie.Tworzenie szablonu UIActionSheet
Odpowiedz
Spójrz na dokumentacji UIActionSheet.
NSString *actionSheetTitle = @"Action Sheet Demo"; //Action Sheet Title
NSString *destructiveTitle = @"Destructive Button"; //Action Sheet Button Titles
NSString *other1 = @"Other Button 1";
NSString *other2 = @"Other Button 2";
NSString *other3 = @"Other Button 3";
NSString *cancelTitle = @"Cancel Button";
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:actionSheetTitle
delegate:self
cancelButtonTitle:cancelTitle
destructiveButtonTitle:destructiveTitle
otherButtonTitles:other1, other2, other3, nil];
[actionSheet showInView:self.view];
To, czego szukasz, nazywa się arkuszem działań. Przeczytaj więcej na ten temat tutaj http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIActionSheet_Class/Reference/Reference.html
Musisz użyć UIActionSheet
. Najpierw należy dodać UIActionSheetDelegate
do pliku ViewController.h.
Następnie można odwoływać się actionsheet z:
UIActionSheet *popup = [[UIActionSheet alloc] initWithTitle:@"Select Sharing option:" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:
@"Share on Facebook",
@"Share on Twitter",
@"Share via E-mail",
@"Save to Camera Roll",
@"Rate this App",
nil];
popup.tag = 1;
[popup showInView:self.view];
Następnie trzeba obsłużyć każdego z połączeń.
- (void)actionSheet:(UIActionSheet *)popup clickedButtonAtIndex:(NSInteger)buttonIndex {
switch (popup.tag) {
case 1: {
switch (buttonIndex) {
case 0:
[self FBShare];
break;
case 1:
[self TwitterShare];
break;
case 2:
[self emailContent];
break;
case 3:
[self saveContent];
break;
case 4:
[self rateAppYes];
break;
default:
break;
}
break;
}
default:
break;
}
}
ta została zaniechana na iOS 8.x https://developer.apple.com/documentation/uikit/uialertcontroller#//apple_ref/occ/cl/UIAlertController
+! za to, że jako jedyny nazywa to "UIActionSheet" (a także dostarcza dobrą odpowiedź). – rmaddy
Dosłownie pracowałem nad moją aplikacją, gdy zobaczyłem pytanie! Pochodzi z mojego kodu dosłownie;) – ApolloSoftware
działa również bez dodawania UIActionSheetDelegate .. Chcę wiedzieć, jak ... – Nepster
Jest zwane UIActionSheet: utworzyć jeden taki sposób:
NSString *actionSheetTitle = @"Action Sheet Demo"; //Action Sheet Title
NSString *destructiveTitle = @"Destructive Button"; //Action Sheet Button Titles
NSString *other1 = @"Other Button 1";
NSString *other2 = @"Other Button 2";
NSString *other3 = @"Other Button 3";
NSString *cancelTitle = @"Cancel Button";
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:actionSheetTitle
delegate:self
cancelButtonTitle:cancelTitle
destructiveButtonTitle:destructiveTitle
otherButtonTitles:other1, other2, other3, nil];
[actionSheet showInView:self.view];
Wdrożenie UISctionSheetDelegate reagować na działania przycisku.
Spójrz na tym tutorialu o więcej informacji: http://mobile.tutsplus.com/tutorials/iphone/uiactionsheet_uiactionsheetdelegate (Code jest z tego poradnika)
tytuł i popularność tej kwestii jest znacznie lepsza niż dwukrotnie. Byłoby miło ponownie otworzyć to pytanie, aby można było dodać zaktualizowane odpowiedzi. – Suragch
Głosuj, aby ponownie otworzyć. – Stunner
@Suragch masz rację. jest bardziej pomocny i zrozumiały niż inne linki –