在主线程里加入一个loading画面……
2 {
3 [window addSubview:view_loading];
4 [NSThread detachNewThreadSelector:@selector(init_backup:) toTarget:self withObject:nil];
5 }
可以通过performSelectorOhMainThread更新UI元素,比如设置进度条等等。最后消除loading画面,载入主View。
7 - (void)init_backup:(id)sender
8 {
9 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
10
11 // ...
12 int i = status;
13 [self performSelectorOnMainThread:@selector(show_loading:) withObject:[NSNumber numberWithInt:i] waitUntil Done:NO];
14
15 [view_loading removeFromSuperview];
16 [window addSubview:tabcontroller_main.view];
17 [pool release];
18 }
语法
{
[
window
addSubview
:
view_loading]
;
[
NSThread
detachNewThreadSelector
:
@selector
(
init_backup:
)
toTarget
:
self
withObject
:
nil
]
;
}
-
(
void
)
init_backup:
(
id
)
sender
{
NSAutoreleasePool
*
pool =
[
[
NSAutoreleasePool
alloc
]
init
]
;
// ...
int
i =
status
;
[
self
performSelectorOnMainThread
:
@selector
(
show_loading:
)
withObject
:
[
NSNumber
numberWithInt
:
i]
waitUntilDone
:
NO
]
;
[
view_loading removeFromSuperview
]
;
[
window
addSubview
:
tabcontroller_main.view
]
;
[
pool release
]
;
}