내가 앱의 몇이 필요가 있고, 나는 다음과 같은 패턴을 사용 : 사용자에게 제공됩니다 첫 번째 뷰 컨트롤러에서
을, 나는 UserPrefsManager는 싱글 여부는 다음의 시험이며, 어디로 사용자 자격 증명을 알고 있습니다. 이 호출은 사용자에게 등록해야한다는 것을 알려주는 모달 뷰 (FirstTimeWelcomeViewController
)를 표시합니다.
-(IBAction) createAccount
{
UIViewController * parent = [self parentViewController];
CreateAccountViewController * vc = [[[CreateAccountViewController alloc] initWithNibName:@"CreateAccountViewController" bundle:nil] autorelease];
[self dismissModalViewControllerAnimated:false];
[parent presentModalViewController:vc animated: false];
}
이 또한 forgotPassword을 위해 존재한다는 것을 상상하고, loginACcount ... 같은 패턴 :
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UserPrefsManager * prefs = [UserPrefsManager sharedInstance];
if (![prefs isLoggedIn])
{
FirstTimeWelcomeViewController * vc = [[[FirstTimeWelcomeViewController alloc] initWithNibName:@"FirstTimeWelcomeViewController" bundle:nil] autorelease];
[self presentModalViewController:vc animated: false];
}
else
{
if (![[RWXLocationSingleton sharedInstance] hasLocation]) {
[[RWXLocationSingleton sharedInstance] findLocationWithAccuracy:kCLLocationAccuracyThreeKilometers withObject:self andSelector:@selector(updateLocationsView)];
}
[[self tableView ]reloadData];
}
}
FirstTimeWelcomeViewController는 기본적으로 로그인 할 사람들을 맞이하고 다양한 방법에 소요 버튼이있는 화면입니다 . 이렇게하면 현재보기가 버튼을 누른 특정 사례를 처리하는보기로 대체됩니다. 'loginAccount'방법을 복용
, 당신은 LoginAccountViewController을 연, 그리고는 다음과 같이 작동 loginButton라는 방법을 가지고 있습니다 ...
-(IBAction) loginButton
{
NSString * u = [self.username text];
NSString * p = [self.password text];
//
// app specific logic that tests various inputs and creates a user object.
//
// goes here...
//
if([user checkValid])
{
UserPrefsManager * prefs = [UserPrefsManager sharedInstance];
[prefs setPassword:p];
[prefs setUsername:u];
[self dismissModalViewControllerAnimated:FALSE];
}
//
// more app specific stuff
//
}
을 그리고 꽤 많은 것을입니다. 키 체인에 물건을 넣거나 사용자 기본값을 저장하는 표준 방법 중 하나를 사용하여 정보를 저장해야합니다. 사용자가 다시 만들 때 성가신 일이라면 선택하는 항목이 복원간에 지속되는지 확인하십시오. 첫 번째 부분은 가장 유용한 비트이며, 나머지는 컨텍스트에 유용 할 수 있다고 생각합니다.
이 질문의 두 번째 부분은 대답하지 않는다는 점에 유의하십시오. 대화 상자를 제시하는 방법 중 첫 번째 부분 만 대답합니다. 처음에는 앱에 로그인 할 이메일을 요구합니다 (사용자 이름은 실제 이메일 주소이며, 도움이되지 않습니다). 그런 다음 비밀번호를 선택하도록합니다. – corprew
위대한 답변을 주셔서 감사합니다! NSUserDefaults를 사용하여 로그인 정보를 저장 했으므로 NSUserDefaults는 지속될 것이고 시작하기가 조금 더 어려워 보였습니다. – MikeN
내 앱이 앱 델리게이트를 통해 첫 번째 모달을로드합니다.이를 제거하고 내 탭 컨트롤러의 첫 번째보기에 배치해야합니까? 그렇지 않으면 AppDelegate.m에 배치 할 수 있습니까? –