ІАА-: выбар вызначае наступны экран

Я хачу зрабіць заяву, у якім карыстальнік спачатку зрабіць некалькі варыянтаў, перш чым ісці да наступнага экране. Адзін з варыянтаў, каб даць некалькі (магчыма, аднаго рулона pickerview) у дыяпазоне ад 0 да 10. Пасля таго, як нумар абраны, а таксама іншыя варыянты былі зробленыя, карыстальнік выбірае «зроблена». Кожны нумар спасылкі на іншы экран. Такім чынам, 1 спасылка на экран, 2 спасылкі на экране B і г.д. Але я не ведаю, як я магу гэта зрабіць. Можа хто-небудзь, калі ласка, дапамажыце мне? Дзякуй

0

6 адказы

У метадзе дэлегаты для выбару пункту гледжання зборшчыка вы можаце захацець выкарыстоўваць некаторую форму перамыкача заяву, каб загрузіць і націснуць на наступны кантролер прадстаўлення. Магчыма, вы нават вырашыце загрузіць гэтыя значэння радкі з спісу уласцівасцяў, так што клас з'яўляецца больш паўторным выкарыстаннем.

NSInteger selectedNumber; //number from picker
NSString *nextViewController = nil;

switch (selectedNumber) {
  case 1:
    nextViewController = @"AViewController";
  break;
  case 2:
    nextViewController = @"BViewController";
  break;
  case 3:
    nextViewController = @"CViewController";
  break;

  //....

  case n:
    nextViewController = @"XViewController";
  break;
  default:
    nextViewController = @"DefaultViewController";
  break;
}

id viewController = [[NSClassFromString(nextViewController) alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
1
дададзена
@ Jan.PetersNL гэта залежыць, дзе вы паставіце гэтую логіку, можна дадаць яго ў якасці мішэні на UIButton таму пры яе націску будзе перайсці да наступнага экране, або змясціць яго ў pickerView дэлегата на ёсць гэта пайсці да ViewController па выбары.
дададзена аўтар Oliver Atkinson, крыніца
Олівер, дзякуй! Яшчэ адно пытанне (прабачце), будзе nextViewController з'яўляюцца адразу (у адказе), або карыстальнік павінен выбраць «Done», а затым з'явіцца nextViewController?
дададзена аўтар Jan.PetersNL, крыніца

У метадзе дэлегаты для выбару пункту гледжання зборшчыка вы можаце захацець выкарыстоўваць некаторую форму перамыкача заяву, каб загрузіць і націснуць на наступны кантролер прадстаўлення. Магчыма, вы нават вырашыце загрузіць гэтыя значэння радкі з спісу уласцівасцяў, так што клас з'яўляецца больш паўторным выкарыстаннем.

NSInteger selectedNumber; //number from picker
NSString *nextViewController = nil;

switch (selectedNumber) {
  case 1:
    nextViewController = @"AViewController";
  break;
  case 2:
    nextViewController = @"BViewController";
  break;
  case 3:
    nextViewController = @"CViewController";
  break;

  //....

  case n:
    nextViewController = @"XViewController";
  break;
  default:
    nextViewController = @"DefaultViewController";
  break;
}

id viewController = [[NSClassFromString(nextViewController) alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
1
дададзена
@ Jan.PetersNL гэта залежыць, дзе вы паставіце гэтую логіку, можна дадаць яго ў якасці мішэні на UIButton таму пры яе націску будзе перайсці да наступнага экране, або змясціць яго ў pickerView дэлегата на ёсць гэта пайсці да ViewController па выбары.
дададзена аўтар Oliver Atkinson, крыніца
Олівер, дзякуй! Яшчэ адно пытанне (прабачце), будзе nextViewController з'яўляюцца адразу (у адказе), або карыстальнік павінен выбраць «Done», а затым з'явіцца nextViewController?
дададзена аўтар Jan.PetersNL, крыніца

Ёсць пераменная selectedNumber. Калі карыстальнік выбірае значэнне з зборшчыка захаваць яго ў selectedNumber. Затым вы можаце выкарыстоўваць перамыкач, каб вылучыць розныя пункты гледжання. Або проста, калі ўмовы.

if(selectedNumber == 1){
push View A
}
else if(selectedNumber == 2){
push View A
}
0
дададзена

Ёсць пераменная selectedNumber. Калі карыстальнік выбірае значэнне з зборшчыка захаваць яго ў selectedNumber. Затым вы можаце выкарыстоўваць перамыкач, каб вылучыць розныя пункты гледжання. Або проста, калі ўмовы.

if(selectedNumber == 1){
push View A
}
else if(selectedNumber == 2){
push View A
}
0
дададзена

Тое, што я зрабіў бы, каб дэлегаваць pickerview ў мой бягучы кантролер, і рэалізаваць у ім метад:

pickerView:didSelectRow:inComponent:

і так з абрана вядомая радок, я б перанакіраваць карыстальніка на патрэбны погляд з, калі ўмовы, як Durgaprasad сказаў.

0
дададзена

Тое, што я зрабіў бы, каб дэлегаваць pickerview ў мой бягучы кантролер, і рэалізаваць у ім метад:

pickerView:didSelectRow:inComponent:

і так з абрана вядомая радок, я б перанакіраваць карыстальніка на патрэбны погляд з, калі ўмовы, як Durgaprasad сказаў.

0
дададзена