Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 加载视图后处理方法_Iphone_Xcode_Navigation_Subview - Fatal编程技术网

Iphone 加载视图后处理方法

Iphone 加载视图后处理方法,iphone,xcode,navigation,subview,Iphone,Xcode,Navigation,Subview,我实现了一个子视图,当我单击父视图中的按钮时,应该立即加载该子视图。加载子视图(基本上保存着activityindicator)后,程序应该在其中处理一个方法(从服务器获取数据,因此需要时间) 然而,我无法做到这一点 现在发生的是,当我单击父视图上的按钮时,它首先处理该方法,然后子视图才会加载到屏幕上 为什么会这样?是否只有在加载视图后,我才能使用任何特定的函数来加载我的方法?我遇到了同样的问题,我使用了NSAutoreleasePool并解决了这个问题。我希望它能帮助你 - (void)vie

我实现了一个子视图,当我单击父视图中的按钮时,应该立即加载该子视图。加载子视图(基本上保存着activityindicator)后,程序应该在其中处理一个方法(从服务器获取数据,因此需要时间)

然而,我无法做到这一点

现在发生的是,当我单击父视图上的按钮时,它首先处理该方法,然后子视图才会加载到屏幕上


为什么会这样?是否只有在加载视图后,我才能使用任何特定的函数来加载我的方法?

我遇到了同样的问题,我使用了NSAutoreleasePool并解决了这个问题。我希望它能帮助你

- (void)viewDidLoad {

   [self performSelectorInBackground:@selector(loadXml) withObject:nil];

 }

 -(void) loadXml{

        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

       NSString * path =@"http:www.YOUR_RSS_FEED.com";

       [self parseXMLFileAtURL:path];       //(Instead of ViewDidAppear)

      [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

       [pool drain];

   }

谢谢。

有几种不同的方法:

如果子视图具有加载图像和执行比视图更复杂的操作的功能,那么一个好的方法是将其转换为ViewController

在俯视控制器中,使用:

- (void) loadView { 
    [super loadView];
}
设置显示视图时需要准备的内容

用途:

-(void) viewDidLoad {

}
进行其他设置

在您的情况下,听起来好像需要在loadView方法中添加指示器,然后在viewDidLoad方法中开始检索数据

如果您正在访问web服务等,请始终在不同的线程上执行此操作。(查看NSO的运行情况,寻找一种实现这一目标的简单方法)