コードを投稿することはできますか?何が起こっているのかを見ずに推測するのは難しいですが、とにかく試してみましょう。
viewDidLoadからサーバーに接続するコードを移動して、コールバックメソッドなどに配置する必要があります。私は、名前とパスワードフィールドでアラートを投げ、あなたのView Controllerをアラートのデリゲートにしてから、clickedButtonAtIndex関数をサーバーに接続させることをお勧めします。
例:
-(void)viewDidLoad {
UIAlertView *loginAlert = [[UIAlertView alloc] initWithTitle:@"Login" message:@"Please enter your username and password below" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Login",nil];
//You might have to do some fiddling with the frame sizes to make it fit in the alert.
UITextField *userNameField = [[UITextField alloc] initWithFrame:CGRectMake(originX, originY, lengthX, lengthY)];
userNameField.placeholder = @"User Name";
[loginAlert addSubview:userNameField];
//loginAlert will retain this so we release it now.
[userNameField release];
[UITextField *passwordNameField = [[UITextField alloc] initWithFrame:CGRectMake(originX, originY, lengthX, lengthY)];
passwordNameField.secureTextEntry = YES;
[loginAlert addSubview:passwordNameField];
[passwordNameField release]
//This line tells the iPhone to stretch out your AlertView so it's big enough for your two textViews, we use 0 and 130 respectively but we only have one text field.
CGAffineTransform myTransform = CGAffineTransformMakeTranslation(stretchX, stretchY);
[loginAlert setTransform:myTransform];
[loginAlert show];
[loginAlert release];
}
//Implement this method, it will be called when the user clicks the "login" button on your alert.
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
//Usually if they click cancel you do nothing, thats buttonIndex 0
if(buttonIndex == 1) {
//Connect to the server with the correct login and password.
}
}
こんにちはティムする必要があるときに呼び出され、別の方法で、あなたの提案をありがとうを持っている、のviewDidLoadでテーブルの読み込みを行い、すべてのコードを使用することはできません。アラートを使用してユーザー名とパスワードを入力すると、問題が解決しました。 2番目のビューでユーザー名とパスワードを入力していたので、2番目のビューでLoginボタンをクリックしたときに、ルートビューでテーブルビューを再読み込みする問題が発生しました。私のルートビューは、タブコントローラー、ナビゲーションコントローラー、テーブルビュー、および3ボタンのセグメント化されたコントロールを含む複雑なものです。だから、サブビューでログインボタンがクリックされたときに、ルートビューテーブルを更新するのが難しいと思っていました。あなたの提案をありがとう、それは今素晴らしいです。 –
お手伝いをしてうれしい! –
UIAlertにUITextFieldを追加するのは、AppleのHIGに対するものです。このソフトウェアをApp Storeに提出する予定がある場合、UIAlertの代わりにモーダルビューを表示する方が安全でしょう(-presentModalViewController:animated :)。 – leolobato