为什么viewDidLoad每个人都会调用超类的方法viewDidLoad?它会做什么工作?这是强制性的吗?
我通过以下方式显示UIViewController:
MyViewController *myVc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[myVc setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self presentModalViewController:myVc animated:YES];
Run Code Online (Sandbox Code Playgroud)
如果我正在绘制MyViewController视图,那么过渡只会影响半页(我想要的是什么).
在我的情况下,我正在绘制整个MyViewController视图,因此转换会影响整个视图
如果我只绘制了半个视图,那么转换会对屏幕的一半产生影响,但我仍然会显示"死区"并且未显示.

我的问题是转换如何只影响屏幕的一半(如图所示),但我仍然能够绘制整个视图,所以即使转换仅显示屏幕的一半,所有显示的区域都将被绘制
我在SO和其他地方搜索过MvvmCross和Modal,但现有的答案并没有帮助我们.
我们正在使用MonoTouch和MvvmCross开发一个跨平台的应用程序,这似乎是非常强大的组合.但是,我们在导航方面遇到了一些问题,我们正在逐渐破解!目前的问题是 -
该应用程序使用TabBarController运行,每个选项卡都有导航到更高级别 - 这很好.然而,客户端需要其中一个选项卡上的"开始"按钮以显示模态视图(隐藏其他所有内容,尤其是标签栏),然后其具有与UINavigationController相同的工作方式,具有该功能随时弹回tabBarController.
我们设法提出了一个模态视图,但我们仍然坚持从这里加载新视图并弹出.
任何帮助/建议表示赞赏!
这就是我正在做的事情 - 我有一个UIView - 我将它从一个viewcontroller传递给另一个.
当我回到第一个viewcontroller时 - uiview缺失 - 相反,它的位置有一个白色的空白区域.
我正在使用ARC - 任何想法 - 如果因为那个或那么我错过了
谢谢
我有一个iOS应用程序,它具有登录视图(LognnViewController),一旦用户成功通过身份验证,它们将被带到另一个视图(DetailEntryViewController)以输入一些简单的细节.
输入详细信息后,用户将进入应用程序的主要部分,该部分由包含TabViewController各种其他视图的选项卡控制器()组成.该LogInViewController执行模式SEGUE到DetailEntryViewController和DetailEntryViewController随后进行模态SEGUE到TabViewController让我有一种模态SEGUE链将进入应用程序.当用户注销时,我想一直回到LogInViewController但是当我做一个:
[self.presentingViewController dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
...它弹出TabViewController,我最终回到DetailEntryViewController了第一个LogInViewController.有没有什么方法可以轻松地回到第一个视图控制器或做这个模态segue链的事情阻止我.我有一个明智的想法是将一些代码放入DetailEntryViewController viewWillAppear:如果用户已经注销,它会自动弹出,但是在viewWillAppear以下情况下不允许调用解雇模态控制器viewDidLoad:等等.
关于如何实现这一目标的任何想法?
这个网站全新,这里有很多业余知识!几个星期前开始自学.有一个非常可靠的iPhone应用程序,但我想要实现的最后一个功能是能够;
创建"首次启动"导游.
我想知道的是; 如果是用户首次启动应用程序,我怎么能以编程方式将视图重定向到不是"初始视图控制器"的新视图控制器,而无需点击按钮.
我已经阅读了一些有关检测首次启动的教程,我理解.我也阅读了一些教程并尝试了书中的所有内容来尝试实现"performSegueWithIdentifier",但是没有什么对我有用!
也许是因为我正在使用Xcode 5并在iOS 7上进行测试.如果有人能帮助我,我将永远感激不尽!
(void)viewDidLoad
{
[super viewDidLoad];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"]) {
}
else {
// Place code here
self.view.backgroundColor = [UIColor redColor];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
// Do any additional setup after loading the view, typically from a nib.
}
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有以下设置:我的初始视图控制器是UITabBarController.标签:
1)UINavigationController-> PostListVC
2)UINavigationController-> CategoriesListVC
3)UINavigationController-> PostListVC
4)UINavigationController-> PostListVC
5)UINavigationController-> MoreViewController
如您所见,3个选项卡包含相同的viewController类,但不应包含相同的视图控制器对象 - 视图将根据从AppDelegate获取的信息显示不同的信息.
我做的是创建了5个UINavigationControllers,将它们连接到uitabbarcontroller,然后为其中的3个创建了一个rootViewController segue到同一个PostListVC视图 - 这样我就不需要维护3个相同视图的设计了.
我得到的问题是只有第一个PostListVC被正确创建(标签栏中最左边) - 指向PostListVC的其他选项卡只显示黑屏.
我试图用一个3-tab示例说明我连接故事板的方式:
如您所见,最上层和最下层视图都连接到PostListVC.
我不知道问题是什么.我假设我错误地使用了故事板.
有谁知道我怎么解决这个问题?
谢谢!
编辑: 我已经创建了一个简单的示例项目(Xcode 5),它解释了这个问题:
http://www.speedyshare.com/Srwfg/TabBarProblem.zip
编辑2: 该示例的修改版本,显示了所提供解决方案的问题:http: //speedy.sh/JkdGC/TabBarProblem-2.zip
无法使用此方法创建不同的tabBarItems,并且无法放置barItems以使它们不在一行中 - 即使您尝试对segue的顺序进行查询.
我试图用父视图控制器设置ViewController,以显示它可以提供回调,我使用 PrepareForSegue
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"newQuarter"])
{
[segue.destinationViewController setParentViewController:self];
}
}
Run Code Online (Sandbox Code Playgroud)
它崩溃了,给我错误信息: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller.
所以我尝试使用另一种方法,并在触摸按钮时设置了新的视图控制器,
- (IBAction) buttonClicked
{
NewViewController *newController = [[NewViewController alloc] init];
[newController setParentViewController:self];
[self presentViewController:newController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
但是没有运气,它仍然给我同样的错误信息,有人可以请教吗?谢谢!
我想开发与苹果iOS platform.My游戏SpriteKit游戏有一个设置页面包含标签,按钮,表格视图,......和游戏page.In我的测试中,第一页是设置,当玩家按下"开始",游戏将开始.我不知道如何转移到游戏场景,我不知道我的问题在哪里,也许是因为我是SpriteKit的新手.我的设置页面是故事板中的起始页面,默认情况下它连接到GameViewController,当我按下"开始"按钮时,我在最后一行得到错误,程序将停止.我想在新视图中加载我的游戏场景,但我有问题.这是我的代码:
-(IBAction)btn_startGame:(id)sender
{
SKView* skView = (SKView*)self.view;
SKScene* obj_gameScene = [MyScene sceneWithSize:skView.bounds.size];
obj_gameScene.scaleMode = SKSceneScaleModeAspectFill;
SKTransition *transition = [SKTransition flipVerticalWithDuration:0.5];
[skView presentScene:obj_gameScene];
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
2016年1月21日06:06:40.201 test_myGame [605:5321] - [UIView的presentScene:]:无法识别的选择发送到实例0x7fd809fcf570 2016年1月21日06:06:40.207 test_myGame [605:5321]***终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [UIView presentScene:]:无法识别的选择器发送到实例0x7fd809fcf570'
我正在创建我的第一个简单的预算应用程序.基本上,我采取一些用户输入,如月收入和储蓄目标.然后他们点击"开始",该应用程序计算诸如他们的每日预算等内容.
我遇到了麻烦.在完成所有计算之后,我会显示"你每天可以花多少钱"(例如每天20美元),然后通过原始屏幕上的原始输入传递segue.
现在,在这个VC(UserInfoVC)中我创建了一个按钮,让他们可以添加今天花了多少钱.因此,当他们点击这个"花钱"按钮时,我打开一个新的VC(AddSubtractMoney),在那里我会提供一个计算器,在那里他们可以输入他们今天花了多少钱(即12美元)并点击提交.
我将他们的输入与每日预算相比较,以获得新的每日预算.
现在,我无法向后传递这个更新的数字,将其显示在标签"dailySpendingLimitLabel"上的前一个VC上.我知道segues不是向后传递数据的最佳方式.
我已经尝试过闭包,但我最终迷失在语法,协议和代理中(这是我的第二个月编码).
有没有一种简单的方法可以将这些数据传回上一个VC并填充前一个显示标签中的数据?
下面是代码.
第一个片段来自UserInfoVC,我在其中显示我最初输入的数据.第二个片段来自AddSubtractMoney我放置计算器的类,并在函数内创建了一个对象"newestUpdate",允许我计算他们在计算器上输入的数字减去旧的每日预算.为了得到一个新的预算,我想向后呈现UserInfoVC.
class UserInfoViewController : ViewController {
var userNamePassedOver : String?
var userDailyBudgetPassedOver : Double = 99.0
var userDailySavingsPassedOver : Double = 778.00
var userMonthlyEarningsPassedOver : Double?
var userDesiredSavingsPassedOver : Double?
var newAmountPassedBack : Double = 0.0
@IBOutlet weak var dailySavingsNumberLabel: UILabel!
@IBOutlet weak var userNameLabel: UILabel!
@IBOutlet weak var dailySpendingLimitLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
userNameLabel.text = userNamePassedOver
dailySpendingLimitLabel.text = String(format: "%.2f", userDailyBudgetPassedOver) …Run Code Online (Sandbox Code Playgroud) viewcontroller ×10
ios ×6
objective-c ×4
segue ×4
iphone ×2
modal-dialog ×2
cocoa ×1
mvvmcross ×1
sprite-kit ×1
storyboard ×1
swift ×1
transition ×1
uiview ×1
xamarin.ios ×1
xcode ×1