1

戻るボタンをクリックして、の情報を保存しUITextFieldsますUIView。aの情報がUITextField正しくなく、戻るボタンをクリックすると、キーボードを開きたいのですが、ビューが消えます。UIViewが消えないようにして、代わりにキーボードを開く方法。

コードをviewShouldDissapearに配置する必要があると思いますが、そのようなメソッドはありません。

これは私のコードです:

- (void) viewWillDisappear:(BOOL)animated
{

if ([textField1 length] < 3 || [textField1 length] > 17) {

    tableView.contentInset = UIEdgeInsetsMake(65, 0, 10, 0);

    [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:7 inSection:indexPath.section]
                     atScrollPosition:UITableViewScrollPositionTop animated:NO];

    [txtSerieSasiu becomeFirstResponder];
    return;
}

if (shouldSave)
    [self save];
}
4

2 に答える 2

0

ナビゲーションコントローラーに戻るボタンがあると思います。
次に、そこにカスタムボタンを追加し、すべてが正しい場合は、それを閉じます。それ以外の場合は、キーボードを表示します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"goback.png"] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(popVC:) forControlEvents:UIControlEventTouchUpInside];
    [button setFrame:CGRectMake(0, 0, 32, 32)];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
}

- (void)popVC:(id)sender
{
    if (isValueCorrect) {
        [self.navigationController popViewControllerAnimated:YES];
    }
    else{
        [textView becomeFirstResponder];
    }
}
于 2013-02-08T09:01:07.123 に答える
0

ボタンを押すと呼び出されるセレクターにこのコードを記述し、すべてが正しい場合は、viewController のみをポップ/破棄します。同様に、viewWillDisAppearコントローラーに消えることをキャンセルするように依頼できます。

于 2013-02-08T08:54:30.580 に答える