не получает значение в строке после возврата с другого контроллера

#iphone #ios

#iPhone #iOS

Вопрос:

У меня есть кнопка в пользовательской ячейке, которая подключена к методу IBAction — downloading . Когда я нажимаю на кнопку, я получаю путь к индексу выбранной ячейки и получаю значение массива в sting из этого пути индекса. Вот мой код

   -(IBAction)downloading:(id)sender
{
  if(abletodownload){
classvalue = 1;
UITableViewCell *clicked = (UITableViewCell *)[[sender superview] superview];
clickedPath = [self.tableview indexPathForCell:clicked];        
 idstring =[arr7 objectAtIndex: clickedPath.row]; 
 NSLog(@"idstring.....%@",idstring);

 urlstring = [arr6 objectAtIndex: clickedPath.row];
 holdingurlstring =[[NSString alloc]initWithString:urlstring];
NSLog(@"urlstring...%@",holdingurlstring);

titlestring = [arr2 objectAtIndex: clickedPath.row];
holdingtitlestring = [[NSString alloc]initWithString:titlestring];
NSLog(@"titlestring.....%@",titlestring);

 objInAppClass = [[InAppClass alloc]init];
[objInAppClass canmakepayment];}
  

Затем я выделяю и инициирую InAppClass и выполняю все функции InAppPurchase.
но когда я возвращаюсь из InAppClass, я не смог получить значение holdurlstring , и holdtitlestring в другой части вот код.

  else{

    abletodownload = TRUE;
    NSLog(@"holdurlstring...%@",holdurlstring);
    NSLog(@"holdtitlestring.....%@",holdtitlestring);   

    [self connectionwithrequest];   
}
}
  

Короче говоря, мне нужно сохранить значение urlstring и titlstring после возврата из InAppClass . Что делать?

Ответ №1:

  1. в пользовательском классе cell создайте экземпляр контроллера представления, в котором вам нужно значение, и синтезируйте его. HomeViewControllerClassName *containerView;

  2. в контроллере представления, когда вы вызываете пользовательскую ячейку, установите для ее свойства контейнера значение self. ((CustomCellClassName *)ячейка).containerView = self;

    создайте метод в ur view controller -(void) getDetailsFromCustomCell:(NSUrl *)urlString;

  3. 4m в какое бы место вы ни хотели отправить данные, вызовите метод ViewController

    [containerView getDetailsFromCustomCell:urlstring];

таким же образом вы можете передать любое количество значений в класс контроллера.

всего наилучшего…

Комментарии:

1. : я не использую какой-либо пользовательский класс cell. Я создал отдельный пустой файл, в который я поместил UITableViewCell с идентификатором и кнопками внутри него из библиотеки. Затем я вызвал это перо в методе cellForRowAtIndexPath.

2. во-вторых, я просто хочу, чтобы значения ‘holdurlstring’ и ‘holdtitlestring’ были в другой части, как и в части if. В части If он показывает значения перед переключением управления на inappclass. но позже это не так.