Eli*_*one 11 xcode objective-c ios
我有一个来自外部RSS提要的UITableView.
当你选择一行它使用navigationController并从右边滑入时,问题是RSS源包含图像,因此它可能需要几秒钟才能加载,并且没有任何迹象表明你可能会将它误认为是应用程序崩溃.
我决定添加一个微调器,以便您知道正在加载新页面.
这是我的代码:
RootViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Loading New Page");
[tableView deselectRowAtIndexPath:indexPath animated:YES];
DetailsViewController *detailViewController = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
detailViewController.item = [rssItems objectAtIndex:floor(indexPath.row/2)];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGPointMake(160, 240);
[self.view addSubview:spinner];
[spinner startAnimating];
[spinner release];
}
Run Code Online (Sandbox Code Playgroud)
DetailsViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
NSString *imgURL = [item objectForKey:@"image"];
NSData *mydata = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgURL]];
item_photo.image = [[UIImage alloc] initWithData:mydata];
item_title.text = [item objectForKey:@"title"];
item_date.text = [NSString stringWithFormat:@"Date: %@",[item objectForKey:@"date"]];
item_time.text = [NSString stringWithFormat:@"Time: %@",[item objectForKey:@"time"]];
item_cost.text = [NSString stringWithFormat:@"Cost: £%@",[item objectForKey:@"cost"]];
item_info.text = [item objectForKey:@"description"];
self.navigationItem.title = @"Event Type";
}
Run Code Online (Sandbox Code Playgroud)
这段代码有两个问题.
如果有人能帮助我解决这个问题,我将非常感激.
wat*_*n12 25
您正在将活动指示器视图添加到控制器的视图中,该控制器正在推动详细视图控制器,因此您无论如何都不会看到它
尝试将第二组代码移动到DetailsViewController的viewDidLoad方法,您可以在加载完成后在活动指示器上调用stopAnimating.要获得对UIActivityIndicator的引用,您应该添加一个标记
例如在viewDidLoad中
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGPointMake(160, 240);
spinner.tag = 12;
[self.view addSubview:spinner];
[spinner startAnimating];
[spinner release];
Run Code Online (Sandbox Code Playgroud)
在loadingFinished方法中(完成加载时调用的方法)
[[self.view viewWithTag:12] stopAnimating];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32141 次 |
| 最近记录: |