1

私は最近 iOS 開発を開始し、ログイン ビューを作成することを目的としていました。仕事をすると思うQuickDialogに遭遇しました。彼らの例では、次のコードを提供しています。

QRootElement *root = [[QRootElement alloc] init];
root.title = @"Hello World";
root.grouped = YES;
QSection *section = [[QSection alloc] init];
QLabelElement *label = [[QLabelElement alloc] initWithTitle:@"Hello" Value:@"world!"];

[root addSection:section];
[section addElement:label];

UINavigationController *navigation = [QuickDialogController controllerWithNavigationForRoot:root];
[self presentModalViewController:navigation animated:YES];

このコードは、カスタム ビューをロードする特殊なコントローラーを作成しているようです。このコード スニペットを追加する場所がわからなかったので、ストーリーボードの元の起動ビューの viewDidLoad に追加しました。ただし、QuickDialog によって作成されたビューが表示される前に、ストーリーボードのビューが一瞬表示されます。

QuickDialogController によって取得されたコントローラーがアプリの起動時にビューをロードするように、アプリを変更するにはどうすればよいでしょうか。QuickDialog を使用してログイン フォームを作成したいと考えています。このログイン ビューは、ストーリーボードのどこかに表示されますか?

4

3 に答える 3

2

これを結び付けるために、QuickDialogController から継承してストーリーボードで QuickDialog を使用する完全な例を次に示します。

// MyController.h
@interface MyController : QuickDialogController
@end


// MyController.m
#import "MyController.h"

@interface MyController ()
@end

@implementation MyController

- (void)viewDidLoad
{
    self.root = [[QRootElement alloc] init];
    self.root.title = @"Hello World";
    self.root.grouped = YES;
    QSection *section = [[QSection alloc] init];
    QLabelElement *label = [[QLabelElement alloc] initWithTitle:@"Hello" Value:@"world!"];

    [self.root addSection:section];
    [section addElement:label];

    [super viewDidLoad];
}

@end
于 2012-11-13T19:38:57.593 に答える
2

ストーリーボードが initWithCoder でコントローラーを作成しているときに、グループ化されたオプションを設定する必要があります。つまり、そこに QRootElement を作成する必要があります。

  1. MyController クラスの実装に次のコードを追加します。

    -(id) initWithCoder:(NSCoder *)aDecoder {
        if ((self = [super initWithCoder:aDecoder])) {
            QRootElement *_root = [[QRootElement alloc] init];
            _root.grouped = YES;
            self.root = _root;
        }
        return self;
    }
    
  2. 次に、self.root を参照する viewDidLoad 内の要素のリストのカスタマイズを続けます。

于 2013-09-14T15:04:13.220 に答える
1

これですべてが機能しますが、quickdialog ログイン フォームが表示されるアニメーションを表示したくありませんか? animated:NO最後の行に設定してみてください。

QuickDialog は、実際には Storyboard から使用するようには設計されていませんが、QuickDialogController から継承するコントローラーを作成することで使用できます。

于 2012-07-16T18:56:33.573 に答える