小编JML*_*dev的帖子

iOS如何在弹出顶视图控制器时以编程方式检测?

假设我有一个带有2个视图控制器的导航控制器堆栈:VC2位于顶部,VC1位于底层.我可以在VC1中包含哪些代码来检测VC2刚刚从堆栈中弹出?

由于我试图从VC1的代码中检测到VC2的弹出,似乎像viewWillAppearviewDidAppear这样的东西不起作用,因为这些方法每次显示VC1时都会触发,包括它首次被推入堆栈时.

编辑:我原来的问题似乎不太清楚.这是我正在尝试做的事情:确定VC1何时显示是由于VC2从堆栈顶部弹出.这是我不想做的事情:确定VC1由于被推到堆栈顶部而显示的时间.我需要某种方法来检测第一个动作但不是第二个动作.

注意:我并不特别关心VC2,它可以是从堆栈弹出的任何数量的其他VC,我关心的是当VC1再次成为堆栈顶部时由于其他一些VC开始弹出最佳.

stack uinavigationcontroller ios

52
推荐指数
5
解决办法
4万
查看次数

Objective C 将标准输出打印到 UIAlertView

我有一个使用 打印到 stdout 的 C 函数fprintf,并且我试图在UIAlertView. 我的代码如下:

NSFileHandle *stdoutFileHandle = [NSFileHandle fileHandleWithStandardOutput];
NSData *stdoutData = [stdoutFileHandle availableData];
NSString *stdoutString = [[NSString alloc] initWithData:stdoutData encoding:NSASCIIStringEncoding];

UIAlertView *stdoutAlert = [[UIAlertView alloc] initWithTitle:@"STDOUT OUTPUT" message:stdoutString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[stdoutAlert show];
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码时,出现以下错误。

由于未捕获的异常“NSFileHandleOperationException”而终止应用程序,原因:“[NSConcreteFileHandle availableData]:错误的文件描述符”

[stdoutFileHandle availableData]当我替换为时,我收到了等效的错误[stdoutFileHandle readDataToEndOfFile]

stdout objective-c nsfilehandle ios

1
推荐指数
2
解决办法
1812
查看次数