내 응용 프로그램이로드 할 때 파일 시스템에 파일이 있는지 확인하고, 그렇지 않으면 presentModalViewController를 사용하여 뷰 컨트롤러를 팝업하고 사용자가 해당보기를 사용하여 로그인 한 후 컨트롤러 내 애플 리케이션은 웹에서 일부 데이터를 얻을 예정이다.PresentModalViewController가 워크 플로우를 중지하지 않는다.
내 문제는 presentModalViewController 이후에 뷰 컨트롤러가 팝업되지만 presentModalViewController 이후의 코드는 VC가 반환되기를 기다리지 않고 계속 실행된다는 것입니다.
내 코드 :
- (void)viewDidLoad
{
[self getPasswordFromFile];
responseData = [[NSMutableData data] retain];
NSString *URL= [NSString stringWithFormat:@"http://localhost/domything/get_status.php?ownerid=%@", nOwnerID];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
[super viewDidLoad];
}
-(void)getPasswordFromFile
{
NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [arrayPaths objectAtIndex:0];
NSString *filePath = [docDirectory stringByAppendingString:@"/pwfile"];
NSError *error;
NSString *fileContents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if(fileContents==nil)
{
// Show registration screen
LoginScreenVC *vcLoginScreen = [[[LoginScreenVC alloc] init] autorelease];
[vcLoginScreen setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:vcLoginScreen animated:YES];
}
NSArray *arr = [fileContents componentsSeparatedByString:@":"];
// NSLog(@"ownerid is:%@, password is: %@", [arr objectAtIndex:0], [arr objectAtIndex:1]);
password = [arr objectAtIndex:1];
nOwnerID = [arr objectAtIndex:0];
[password retain];
[nOwnerID retain];
}
정말요? 나는 모달에 대한 전체적인 생각이 시각이 끝날 때까지 모든 것을 멈추는 것이라고 생각했다. 이것은 나를 슬프게 만든다. –
그건 전혀 작동하지 않습니다. 메인 실행 루프는 모든 터치 이벤트를 처리하고 화면을 그립니다. 프리젠 테이션 후에 멈 추면 터치 이벤트 나 화면 그리기가 더 이상 필요하지 않으므로 모달 뷰 컨트롤러가 나타나거나 대화 할 수 없을 것입니다. – mattjgalloway
고마워, 지금은 문서로 머리를 터뜨릴거야. –