我的应用程序有tabBarController有3个视图,其中一个我想弹出一个Web浏览器,能够返回到应用程序。为此,我使用的是UINavigationController
在myAppDelegate.h中我定义了属性UINavigationController * nav,在myAppDelegate.m中我有@synthesize nav。
在按下按钮时webPopup函数所在的类中,我的代码来到此函数。
- (IBAction)showWeb:(id)sender {
myAppDelegate *app=[[UINavigationController alloc] initWIthRootViewController:self];
// because I want to return back to the same view
webController *web = [[webController alloc] initWithStyle:UITableViewStypeGrouped];
[app.nav pushViewController:web animated:YES];
app.nav.view.frame = CGRect(,0,320,430);
[self.view.window addSUbview:app.nav.view];
}
Web弹出窗口会发生但是它会垂直移动,当我按下“后退按钮”时,我的前一个视图也会出现,并且它也会从之前垂直移动。 经过几次来回后,事情就这样了。
问题:
1.什么可以导致转变?
2.当我“回”看标题时如何避免(从“后退”按钮测试,我认为这可能会导致我回去时的转变。
3.如何找出为什么它在几次尝试后挂起?
感谢。 维克多
答案 0 :(得分:0)
该行:
myAppDelegate *app=[[UINavigationController alloc] initWIthRootViewController:self];
对我没用。你的编译器肯定会警告你这件事吗?什么是“myAppDelegate”定义为?顺便说一下,课程前面应该有一个大写字母。
此外,该行
[self.view.window addSUbview:app.nav.view];
非常可疑,因为您的应用程序的UIWindow应该只有一个子UIView。你不应该只是毫不犹豫地添加更多的观点,并希望事情有效。通过删除旧的UIView并添加一个新的,可以更改子UIView,但您似乎并没有这样做。拥有UIWindow的UIView不止一个孩子会让你很快陷入困境 - 例如,设备方向的改变可能会中断。
答案 1 :(得分:0)
我不清楚为什么应该委托代表(或者那个问题的窗口)需要完全搞砸你做你想做的事情。听起来你应该使用标准的Nav View Controllers和Web Views。
此外,您无需任何内存管理即可初始化。