2012-07-15 32 views
1

我最近開始iOS開發,並有一個目標是創建一個登錄視圖。我遇到了QuickDialog,我認爲它會完成這項工作。在他們的榜樣,他們提供了下面的代碼: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創建登錄表單。此登錄視圖會出現在故事​​板的某處嗎?

回答

1

所以一切正常,但你不想顯示出現quickdialog登錄窗體的動畫?在最後一行嘗試設置animated:NO

QuickDialog的設計並非真正從Storyboard中使用,儘管您可以通過創建一個從QuickDialogController繼承的控制器來實現。

+0

這或許可以工作,但似乎工作就完成了裝載第一導航控制器,它可能不理想。我確實找到了解決方案,我會在今天晚些時候發佈。感謝:) – Karan 2012-07-17 09:10:21

+0

愛德華多,你可以添加一個像本傑明更完整的片段嗎,但是正確顯示爲分組? – djunod 2013-05-05 23:32:53

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 
+0

這似乎工作很好,但問題是'self.root.grouped' = YES似乎沒有工作。它沒有把它分組。 – Alan 2013-03-27 20:59:02

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. 然後繼續自定義在viewDidLoad中元素的列表引用self.root

相關問題