Как я могу отклонить мой логин для хорошего? - PullRequest
0 голосов
/ 09 марта 2012

до сих пор мой вид входа в систему отображался в начале приложения с использованием метода viewDidAppear в моем первом контроллере представления, но как только имя пользователя и пароль были утверждены веб-службой, контроллер первого представленияпоявляется на долю секунды, а затем сразу возвращается к виду входа в систему.

я что-то забыл ???я только сделал кодирование в моем представлении входа в систему, и мое первое представление.

кодирование для первого:

 - (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
    [vc setModalPresentationStyle:UIModalPresentationFullScreen];

    [self presentModalViewController:vc animated:YES];
    [self dismissModalViewControllerAnimated:YES];

}

вот кодирование в моем виде входа в систему

    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    NSMutableString *Yes =[[NSMutableString alloc] initWithString:@"Y"];

    if ([ capturedCharacters isEqualToString:Yes])
    {
            //[self presentModalViewController:vc animated:YES];

        [self dismissModalViewControllerAnimated:YES];  
    }
    else
    {
        // ask user to login again, 
    }

   [capturedCharacters release];
    capturedCharacters = nil;

    if ([elementName isEqualToString:@"str_partinfo"]) {
        // We are no longer in an item element
        inItemElement = NO;

    }
}

иЯ использую шаблон панели вкладок

1 Ответ

1 голос
/ 09 марта 2012

Позвонив по номеру:

 - (void)viewDidAppear:(BOOL)animated

Вы представляете loginView каждый раз, когда появляется ваш родительский контроллер представления.Я думаю, что на самом деле происходит то, что, когда представление входа в систему закрывается, вызывается «viewDidAppear», который снова вызывает представление входа в систему.

Попробуйте поместить логику внутрь - (void) viewDidLoad и посмотрите, поможет ли это:1006 *

  - (void)viewDidLoad
 {
     [super viewDidLoad];

     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
     UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
     [vc setModalPresentationStyle:UIModalPresentationFullScreen];

     [self presentModalViewController:vc animated:YES];
     [self dismissModalViewControllerAnimated:YES];

 } 

Кроме того, вы можете иметь BOOL-указатель, псевдокод:

 BOOL loginSuccessful;
 if(!loginSuccessful)
 {
      //ShowLogin
      loginSuccessful = TRUE;

 }
...