我正在使用标签栏驱动的应用程序中以编程方式切换选项卡UITabBarController.selectedIndex.我试图解决的问题是如何设置视图之间的过渡动画.即.从当前选项卡的视图到所选选项卡的视图.
第一个想法是使用UITabBarControllerDelegate它,但似乎在编程切换选项卡时不会调用它.我现在正在考虑UITabBarDelegate.didSelectItem:作为设置过渡动画的可能钩子.
有没有人设法为过渡动画?如果有,怎么样?
启动应用程序时,如果用户没有存储登录信息,我想显示模态视图控制器以强制输入此信息.我通过反复试验发现,这必须发生在我的根视图控制器的viewDidAppear中.我试图将它放在viewDidLoad和viewWillAppear中,但是除非我将根视图控制器的视图分配给模态中使用的导航控制器的视图,然后导致其他问题,否则这些都不起作用...
所以我有:
- (void)viewDidAppear:(BOOL)animated
{
NewAccountViewController *newAccountViewController = [[[NewAccountViewController alloc] initWithNibName:@"NewAccountViewController" bundle:nil] autorelease];
UINavigationController *accountNavigationController = [[UINavigationController alloc] initWithRootViewController:newAccountViewController];
[self presentModalViewController:accountNavigationController animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
在newAccountViewController中,我有一个简单的导航项按钮,用dismissModalViewController解除模态视图控制器.
这一切都有效,当模态被解除时,导航控制器中的视图可见,其导航项标题位于顶部....
但是,状态栏与蓝色导航项目栏顶部之间的状态栏大小相同.如果我不做模态,那么差距永远不存在.它仅在模态呈现和解除后发生.我试过做动画:现在和dismissModalViewController都没有.我也试过在模态中不使用导航控制器,这也没有做任何事情.任何想法都会很棒!谢谢.
iphone model-view-controller objective-c uiviewcontroller uikit
我有一个加载在MainWindow.xib中的视图.它只是一个带有uiimageview的视图,在整个屏幕上显示图像(320 X 480).当应用程序加载时,我显示此视图,然后我执行
[self.view addSubview:tabbarController.view];
Run Code Online (Sandbox Code Playgroud)
选项卡栏控制器只是一个UITabBarController,添加了2个视图控制器.当它将tabbarController的视图添加到子视图时,它会在大约20px的顶部留下一个间隙.我的应用程序确实有一个状态栏,但这基本上是另一个的空间.除非我将此添加到我的视图控制器,否则会发生
self.view.frame = CGRectMake(0, 0, 320, 480);
Run Code Online (Sandbox Code Playgroud)
谁能解释一下呢.我在做
self.view = tabbarController.view;
Run Code Online (Sandbox Code Playgroud)
但被告知我不应该这样做.所以现在我添加了一个子视图,但我不明白为什么我必须调整视图的CGRect以不显示20px.
我这里有一个非常奇怪的问题.我正在使用一个现有的模态视图控制器在ViewController上显示我的MFMailComposer ViewController,它放在导航栏中.
[self presentModalViewController:emailviewController animated:YES];
隐藏,我用...
-(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但当我解散我的MailComposer时,原始视图控制器隐藏在状态栏后面.
我试图使用setFrame方法将视图偏移量修改为10,但它没有用.(这在模态视图控制器出现和解除之前和之后都很累)
我试过暂时隐藏状态栏但没有工作.
我已经尝试过self.navigationcontroller presentmodalviewcontrolle但是这个也没有用...
任何想法或建议将受到高度赞赏

编辑:大多数人给我一个建议手动修改偏移量.那不行.因为如果我在原始viewcontroller方法的viewDidLoad/viewWillapper中执行此操作,那么它会在当前模态视图控制器之前移动我的视图,而在我加载模态视图控制器之后它变得正常.

iphone ×3
uikit ×2
ios ×1
ios4 ×1
ipad ×1
mfmailcomposeviewcontroller ×1
objective-c ×1
uitabbar ×1
uiview ×1
xcode ×1