所以这是我的问题:
我有一个带导航控制器的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中给出了密码,然后回复说密码是正确的,并说回来:
[self.parentViewController dismissModalViewControllerAnimated:YES];
删除此视图?
有一个名为iOutbank的应用程序,它有我想要的......
答案 0 :(得分:0)
将一个委托添加到您输入有效密码时调用的视图控制器类。登录视图控制器中的这样的东西可以工作:
@protocol LoginDelegate
- (void)loginSucceeded;
@end
@interface LoginViewController : UIViewController
{
id<LoginDelegate> delegate;
}
}
接下来,将密码视图控制器的委托设置为应用程序视图控制器类。为此,您的app delegate类需要实现您为登录委托定义的协议,因此在app 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
}
}
当您的app委托类收到通知已输入密码的通知时,您可以关闭密码视图控制器并执行您想要执行的任何操作。
答案 1 :(得分:0)
我在My 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;
}
从我的PasswordView获取我的Delegate方法:
-(void)loginPressed
{
NSLog(@"Login Pressed");
[self.parentViewController dismissModalViewControllerAnimated:YES];
}
现在我可以使用我的TableViewClass的逻辑。
我喜欢堆栈溢出!
问候,我希望有人能解决我解决的问题,我现在要睡觉了......