2011-08-13 43 views
0

因此,這裏是我的問題:如何通過presentModalViewController將消息發送到按下按鈕的UIViewContoller(登錄)?

我有一個navigationController的AppDelegate中:

[self.window addSubview:navigationController.view]; 

在那裏,我把一個presendModalViewController:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
[[self navigationController] presentModalViewController:passwordViewController animated:YES]; 

}

我想要一個PasswordView它接收密碼並告訴NavigationController中的UIView,他可以開始捕獲信息從互聯網上,用一個不錯的MBProgressHUD加載視圖。

我試圖建立一個委託,但它沒有工作,因爲我的UIView的實例是建立在導航控制器。

我有什麼辦法可以告訴我UIView這是我的NavigationController該密碼被賦予和後面的密碼是正確的UND說回來:

[self.parentViewController dismissModalViewControllerAnimated:YES]; 

刪除對此有何看法?

有一個App名爲iOutbank其中有我要承擔什麼...

回答

0

@蒂姆迪恩,非常感謝你幫助我自我幫助,思考我的問題。 所以這是我最後只是:

我做了我在我的tableView PasswordView的一個實例:

 - (void)viewDidLoad 
{ 

self.passwordView = [[PasswordViewController alloc]init]; 
[passwordView setPasswordViewDelegate:self]; 

[self.navigationController presentModalViewController:self.passwordView animated:YES]; 
} 

擺在那裏我代表:

@interface TableView : UITableViewController <PasswordViewDelegate> 
{ 


PasswordViewController *passwordView; 

} 

並讓我代表方法從我的密碼查看:

-(void)loginPressed 
{ 
NSLog(@"Login Pressed"); 
[self.parentViewController dismissModalViewControllerAnimated:YES]; 



} 

現在我可以使用我的邏輯我的TableViewClass。

我愛堆棧溢出!

問候,我希望有人會幫我解決問題,我現在要睡覺....

0

添加一個委託時已輸入有效密碼時調用您的視圖控制器類。像這樣的事情在你的登錄視圖控制器將工作:

@protocol LoginDelegate 
    - (void)loginSucceeded; 
@end 


@interface LoginViewController : UIViewController 
{ 
    id<LoginDelegate> delegate; 
} 

}

接下來,將密碼設置視圖控制器的代表是應用視圖控制器類。要做到這一點您的應用程序委託類需要實現您爲登錄委託定義的協議,所以在應用程序委託頭和實現文件:

@interface MyAppDelegate : NSObject <LoginDelegate> 
{ 
    // App delegate interface stuff 
} 

@implementation MyAppDelegate 
{ 
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
     // Create myLoginViewController   

     [myLoginViewController setDelegate:self]; 

     // Display login view controller   
    } 

    - (void)loginSucceeded 
    { 
     // Dismiss login view controller 
     // Do other stuff 
    } 

} 

當您的應用程序委託類得到通知的密碼已輸入,那麼你可以關閉密碼視圖控制器,並做任何你想要做的下一步。

+0

哇,太快了!THX很多, 但是我沒有得到你的想法:「將你的密碼視圖控制器的代表設置爲應用視圖控制器類」,你能解釋我嗎? – verklixt

+0

查看我添加的代碼示例,這可能會更有意義......我忽略了一些顯示和解除密碼視圖控制器的詳細信息,但希望這可以爲您提供想法。 –

+0

哦,你非常快,非常感謝! 我也有這個想法,但卡在我的邏輯寫的地方。 因此,我的PasswordViewController實例在AppDelegate中,但是我的邏輯是在另一個Controller中編寫的,此ViewController位於NavigationController下,我無法通過它訪問它:[self.navigationConroller.MYOtherViewWhereMyLogicIs loginSucceeded]。 你有沒有得到我的問題,或者我會給你更多的代碼? MYOtherViewWhereMyLogicIs是一個UITableViewController,這就是爲什麼它的重要原因,我不能將邏輯設置到AppDelegate .... – verklixt

相關問題