- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Objective-C 和 iPhone 编程还很陌生,所以如果这是一个新手问题,我深表歉意。我有一个简单的应用程序,需要从一个 View 转到另一个 View 。第一个 View 是 UIViewController。我在 IB 中设置了 xib 文件(即将一些按钮拖到窗口上)并连接了所有按钮(它们都有效)。然后我创建了另一个 xib 文件和类(也是一个 UIViewController)并将它们连接起来。在第一个 View 中按下按钮时,我想加载第二个 View 。这是应该推送 View 的代码:
-(IBAction)createAccount:(id)sender{
CreateAccountViewController*acctView = [[CreateAccountViewController alloc] initWithNibName:@"CreateAccount" bundle:nil];
[self.navigationController pushViewController:acctView animated:YES];
[acctView release];
}
但这没有任何作用。当我将 print 语句放入 createAccount 方法时,这些语句被打印出来(我可以多次单击该按钮并且它永远不会崩溃)但是 acctView 永远不会被按下。当我打印出 self.navigationController 的值时,它返回 null。它甚至更奇怪,因为如果我以模态方式呈现 acctView,它就会起作用。
-(IBAction)createAccount:(id)sender{
CreateAccountViewController*acctView = [[CreateAccountViewController alloc] initWithNibName:@"CreateAccount" bundle:nil];
[self presentModalViewController:acctView animated:YES];
[acctView release];
这工作得很好,但我不想以模态方式使用 View 。我完全迷失在这里。在过去的几个小时里,我看到很多帖子说要用 UINavigationController 做一些事情并将其连接到我的 View ,但我该怎么做呢?任何帮助是极大的赞赏!谢谢。
最佳答案
您似乎还没有为您的应用创建 UINavigationController。
最好的办法是从头开始使用一个新的 Xcode 项目,注意选择一个基于导航的应用程序。通过这种方式,您将获得几乎所有已为您设置的内容。
如果您不喜欢这种方法,您可以通过编程方式创建您的 UINavigationController。 Here您会找到相关的教程。
如果您更喜欢更直接的说明,请看这里:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MainPageDialog *overviewViewController = [[MainPageDialog alloc] initWithNibName:@"MainPage" bundle:nil];
self.navigation = [[[UINavigationController alloc] initWithRootController:overviewViewController] autorelease];
[overviewViewController release];
[window addSubview:[navigation view]];
[self.window makeKeyAndVisible];
return YES;
}
self.navigation
是您的 appDelegate 中的一个保留
属性。
编辑:
这个答案很旧,因此更新:
如果您使用的是 ARC,则应该使用 strong
(相对于 retain
)属性,并且不需要 autorelease
;
如果您的目标是 iOS > 4.0(上述观点也暗示了这一点),您可以使用 UIWindow
中的 rootViewController
属性并说:
MainPageDialog *overviewViewController = [[MainPageDialog alloc] initWithNibName:@"MainPage" bundle:nil];
self.window.rootViewController = [[[UINavigationController alloc] initWithRootController:overviewViewController] autorelease];
[overviewViewController release];
[window addSubview:[self.window.rootViewController view]];
[self.window makeKeyAndVisible];
无需任何 navigation
属性。
关于iphone - pushViewController 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635773/
我想为我的 View 设置动画以响应用户操作,使其看起来像 pushviewcontroller 的动画。也就是说,我希望 View 响应用户操作从屏幕向左滑动。但是,我不想创建一个新 View 并使
如何从 tabBarController 和 navigationController 切换到新 View ,并且新 View 中没有 tabBar 和 navigationBar?我需要向右滑动才能
这是我第一次尝试使用 UINavigationController 实现从一个 tableView 单元格到另一个 tableView 的导航,它对我不起作用。我没有使用 nib 文件,我有一个简单的
推送到堆栈上的 View Controller 不能是选项卡栏 Controller 的实例,并且它不能已经在导航堆栈上。 我想知道我如何发现我即将插入堆栈的 View Controller 是否已经
我想做的是从左侧插入ViewController的自定义动画。我已经创建了自定义过渡委托(delegate),并提供了自定义动画,一切正常(新 View 从左侧幻灯片)。唯一的问题是 iOS 中的推送
我有一个 SidebarMenueController,它是启动应用程序后的入口点。在其中我有一个嵌入侧边栏(滑出)菜单的导航 Controller 。使用 sideBarDidSelectButto
viewcontroller 上有一个按钮,当我单击 按钮 pushviewcontroller 不起作用。 我的 appdelegate.m 文件: - (BOOL)applicationUIApp
我想知道是否可以在没有标签栏和导航栏的情况下全屏推送 NavigationController 的 ViewController。我的问题如下: 我的应用在 TabBarController 中嵌入了
我使用此代码来呈现 UIviewController: -(IBAction)openWoodenPage3:(id)sender{ UIStoryboard *storyboard = [UISto
这是我在网上获得的代码,它确实适用于我之前开发的项目。但是在这个项目中,当我 NSLog 它时,self.navigationController 为 null ,网上的人讨论过在委托(delegat
我正在尝试完成一些非常简单的事情。当我的 Collection View 中的唯一项目被推送时,我试图以编程方式推送到 viewController。什么都没发生。我相信在我纠结的一团糟中有不止一个问
我有一个导航 Controller 、一个 View Controller 和一个 TableView ,它们都是在我的 Storyboard中创建的: 当您触摸 TableView 中的某一行时,它
在 iPhone 应用程序中,我希望在根导航 Controller 的导航栏右侧有一个导航按钮。但是,每次我将另一个 viewController 推到导航 Controller 顶部并且右侧插槽变空
我在 appDelegate 中设置了 navigationController,但现在我在另一个 ViewController 中记忆起它,但它不起作用。这是我的代码: 在appDelegate.h
我有三个 View Controller 。 MainViewController、secondViewController、thirdViewController。我想知道一旦我点击 thirdVi
我对 Objective-C 和 iPhone 编程还很陌生,所以如果这是一个新手问题,我深表歉意。我有一个简单的应用程序,需要从一个 View 转到另一个 View 。第一个 View 是 UIVi
我正在做基于 View 的应用程序,我已经添加了表格 View 。现在我已经在 didSelectRowAtIndexPath 方法中编写如下,当用户点击一行然后导航到“learncourse”nib
我正在尝试推送 ViewController,但我的应用程序每次都会崩溃。 我正在使用 UIImagePickerControllerDelegate 拍照,一旦拍照,这段代码就会运行: func i
我在一个按钮中做了一个推送功能: @IBAction func prodButton(sender: AnyObject) { let storyboard = UIStoryboard(na
我是 IOS 的新手。我所做的只是简单地在我的主视图上放置一个 UIButton,我希望当我单击该按钮时它应该将我带到下一个堆栈。为此,我正在做的是 -(IBAction)stack:(id)send
我是一名优秀的程序员,十分优秀!