2014-12-26 3 views
0

i am newBie в iOS Development.i сделать сегментированный элемент управления для моего приложения, и я хочу проанализировать различные данные WebService для каждого содержимого прокрутки. Для этого я использую HMSegmented Controll и Set a scrollview. Для него вроде какДанные JSON не обрабатываются для всех видов

Вот мой Общий вид контроллер Содержит код сравнивает, как

ViewController *latest=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]; 
    [latest.view setFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)]; 
    latest.index=0; 
    [self addChildViewController:latest]; 
    [self.scrollView addSubview:latest.view]; 

    ViewController *latest2=[[ViewController alloc]initWithNibName:@"NavuViewController" bundle:nil]; 
    [latest2.view setFrame:CGRectMake(320, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    latest2.index=1; 
    [self addChildViewController:latest2]; 
    [self.scrollView addSubview:latest2.view]; 

    ViewController * latest3 =[[ViewController alloc]initWithNibName:@"NavuViewController" bundle:nil]; 
    [latest3.view setFrame:CGRectMake(640, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    latest3.index=2; 
    [self addChildViewController: latest3]; 
    [self.scrollView addSubview: latest3.view]; 

Тогда содержать Different View Как я хочу И в моем файле Просмотр controller.h я Определение индекса в качестве ИНТА переменной

@property (assign) int index; 

И теперь я хочу для выборки данных из различных Webservice На основе индекса для этого я пишу код в моем ViewController.m методе файл ViewDidLoad я написать код, как в

-(void)view 
{ 
[super viewWillAppear:animated]; 
[self.navuTable deselectRowAtIndexPath:self.navuTable.indexPathForSelectedRow animated:YES]; 
NSURL *url; 
switch (self.index) 
{ 
    case 0: 
     url=[NSURL URLWithString:[NSString stringWithFormat:@"http://www.janvajevu.com/webservice/latest_post.php?page=%d",pageNum]]; 
     break; 
    case 1: 
    { 
     NSString *urlString = @"http://www.janvajevu.com/webservice/categorylist.php?category=%E0%AA%9C%E0%AA%BE%E0%AA%A3%E0%AA%B5%E0%AA%BE%20%E0%AA%9C%E0%AB%87%E0%AA%B5%E0%AB%81%E0%AA%82&page="; 

     url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%d",urlString,pageNum]]; 
    } 
     break; 
    case 2: 

    { 
     NSString *urlString = @"http://www.janvajevu.com/webservice/categorylist.php?category=%E0%AA%9F%E0%AB%87%E0%AA%B2%E0%AB%87%E0%AA%A8%E0%AB%8D%E0%AA%9F&page="; 

     url= [NSURL URLWithString:[NSString stringWithFormat:@"%@%d",urlString,pageNum]]; 
    } 
     break; 
    default: 
     break; 
} 
dispatch_async(kBgQueue, ^{ 
    data = [NSData dataWithContentsOfURL: url]; 
    [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES]; 
}); 

-(void)fetchedData:(NSData *)responsedata 
{ 
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
spinner.frame = CGRectMake(0, 0, 320, 44); 
self.navuTable.tableFooterView = spinner; 
if (responsedata.length > 0) 
{ 
    NSError* error; 
    self.json= [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error]; 
    if ([[_json objectForKey:@"data"] isKindOfClass:[NSArray class]]) 
    { 
     NSArray *arr = (NSArray *)[_json objectForKey:@"data"]; 
     [self.navuArray addObjectsFromArray:arr]; 
     [self.navuTable reloadData]; 
     [spinner startAnimating]; 
     NSLog(@"Array %@",self.navuArray); 
    } 
} 

Тогда загрузите и те же данные для Все индексы означают только выборку данных из первого указательного URL. Это данные Mot Load для разных индексов для различного сегментированного управления, пожалуйста, дайте мне решение. благодарит заранее.

ответ

0

Индекс остается при значении 0 все время, это не первый элемент, но это значение по умолчанию при его инициализации.

пытаются добавить delegate в Segment, обратитесь к документации и реализации ValueChanged: Delegate, в котором вы можете получить значение выбранного показателя по yourSegment.selectedIndex ,, и это будет значение, которое вы должны использовать, чтобы получать различные URL.

В противном случае структура вашего кода будет такой недели, вы должны использовать раскадровку вместо nibs, возможно, создать класс модели с чистым кодом, а затем подключиться к вашему пользовательскому интерфейсу. (Шаблон MVC)

надеюсь, что поможет, разместите дополнительные данные, если вы хотите получить дополнительную помощь. Удачи

Смежные вопросы