我是iOS开发的新手,我作为一项研究做的很少。
我有一个应用程序,在我启动它后,我显示MainViewController
,但如果这是第一次启动此应用程序,我想使用{{1来显示Sub1ViewController
(名称已组成) } presentViewController
中调用的方法。
用户在MainViewController
上输入一些数据后,我调用Sub1ViewController
方法隐藏它。
困难的部分从这里开始 - 我不知道在dismissViewController
被解雇时如何捕获事件,我也可以使用Sub1ViewController
调用Sub2ViewController
来呈现presentViewController
。我正在收到消息,当我正在进行另一次出席或解雇时,我正试图提出意见。
PS:我正在使用Xamarin,但我也理解objective-c。
答案 0 :(得分:0)
嗨,你可以试试这个
[self dismissViewControllerAnimated:YES completion:^{
//code to be executed with the dismissal is completed
// for example, presenting a vc or performing a segue
}];
您可以在完成关闭一个视图控制器后编写代码
或 在解除方法延迟一段时间之后,您可以通过当前视图实现此目的
-(void)onDismisViewController{
[self performSelector:@selector(presentSecoundViecontoller) withObject:self afterDelay:1];
}
-(void)presentSecoundViecontoller
{
SecoundViewController *secoundVC = [[SecoundViewController alloc] initWithNibName:@"secoundVC" bundle:nil];
[self.navigationController presentViewController:secoundVC animated:YES completion:NULL];
}
修改强>
尝试这个我尝试并且工作
在subviewcontroller1中创建一个委托方法并在mainviewcontroller中设置委托并在mainvie中实现方法并在此委托方法中显示subviewcontroller2其工作
试试这个,如果不让我知道会发布代码。
在subviewcontroller1.h文件上委托创建
@protocol st1Protocol <NSObject>
- (void)presentViewController;
@end
@interface SubViewController1 : UIViewController
@property (nonatomic,assign) id <st1Protocol> delegate;
- (IBAction)dissmiss:(id)sender;
SubViewcontroller1.m文件 我在subviewcontroller1的按钮点击上放置了关闭视图你在你的解雇方法
中执行此操作 - (IBAction)dissmiss:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
//code to be executed with the dismissal is completed
// for example, presenting a vc or performing a segue
[self.delegate presentViewController];
}];
}
现在在主视图控制器中实现此委托方法。 在.h文件中实现委托方法
@interface StViewController : UIViewController<st1Protocol>
在mainviewcontroller.m文件视图didload
中设置委托- (void)viewDidLoad
{
[super viewDidLoad];
subViewcontroller1 *st1=[[subViewcontroller1 alloc]initWithNibName:@"subViewcontroller1" bundle:nil];
st1.delegate=self;
[self presentViewController:st1 animated:YES completion:nil];
// Do any additional setup after loading the view from its nib.
}
在主视图控制器中委托方法实现
-(void)presentViewController{
SubmViewcontroller2 *st2=[[SubmViewcontroller2 alloc]initWithNibName:@"St2ViewController" bundle:nil];
[self presentViewController:st2 animated:YES completion:nil];
}
希望这可以帮助您快乐编码。